gpt4 book ai didi

php - Firefox 错误 'no element found'

转载 作者:IT王子 更新时间:2023-10-28 23:53:32 27 4
gpt4 key购买 nike

首先,这并不是设置页面的理想方式,但是需要将脚本作为一个文件分发。

我在带有 javascript 的 xhtml 文档顶部有一个 php 脚本,在某些情况下使用 XHR 将查询字符串发送到页面本身。然后顶部的 php 激活,并将传递的内容存储为 session ,然后自行终止 (exit())。 XHR 是异步的,从不检查它是否返回内容。

但是在 Firefox 3 中,每次发送 XHR 请求时,错误控制台都会抛出错误 no element found。此外,如果我使用诸如 exit('Done') 之类的退出,Firefox 会抛出 (Done) 语法错误,就好像它已将它插入到可见 DOM 中一样。这在 Opera 中似乎不会发生。

是否有更好的方法来存储来自已生成的 xhtml 页面的 session ?显然我可以 XHR 到另一个页面,但我更愿意将它全部保存在一个脚本中。 Firefox 是否将对自身的 XHR 请求视为对 DOM 的更新?我不知道为什么会发送此错误。


更新 正如我所说,firefox 仅在发出 XHR 请求时才显示错误。该页面是有效的 XHTML 并且工作完美,没有错误,除非对页面本身发出 XHR 请求。

我想知道为什么它会发送错误,因为它实际上没有返回任何内容。

这是一个从对象发出 ajax 请求的 javascript 片段。它创建一个没有回调函数的 XHR 对象,并发布信息。当不引用同一页面时,它可以正常工作。

 var saveState = { saveContent: function(updateActiveMenu) {
var sendState = new ajaxObject(gV.url);
if (!updateActiveMenu) {
var storageContainer = document.getElementById("StorageContainer").innerHTML;
var menu = document.getElementById("Nav").innerHTML;
sendState.update("Containerstring="+urlencode(storageContainer)+"&Nav="+urlencode(menu)+"&Active="+gV.activeMenuItem, 'POST', true); } }, }

而 php 就是这样做的

if (isset($_REQUEST['Containerstring']) && isset($_REQUEST['Nav']) && isset($_REQUEST['Active'])) {
$_SESSION['Containerarray'] = (saveContainer(regulateEscapes(urldecode($_REQUEST['Containerstring']))));
$_SESSION['Navarray'] = (saveNav(regulateEscapes(urldecode($_REQUEST['Nav']))));
$_SESSION['Active'] = $_REQUEST['Active'];
exit('Done');
}

我也知道我不应该使用 innerHTML 但那是另一回事了


错误是这样的

Error: no element found
Source File: http://localhost/ajax.php?1244648094055
Line: 1

请注意,在我使用的 php 页面上,错误引用了一个从未调用过的查询字符串。

最佳答案

Firefox 期望得到可以解析为 XML 的内容,并在收到空响应时抛出 XML 解析错误。

在你的 PHP 调用“exit()”之前,使用

header('Content-Type: text/plain');

并且 Firefox 不会尝试将响应解析为 XML,应该不会有错误。

关于php - Firefox 错误 'no element found',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/975929/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com