AJAX在Firefox中无法正常工作
问题描述:
我使用Firefox 20.0.1和Apache。我有一些AJAX调用来从服务器检索HTML文档。奇怪的是,在一个函数中,AJAX调用可以正常工作,但是在另一个获取不同文档的函数中,它不起作用。此外,它可以在Chrome中运行。AJAX在Firefox中无法正常工作
关于这可能是什么的任何想法?代码如下:
loc = "Temp\folder1\folder2\title.html";
var req = new XMLHttpRequest();
req.open("POST", loc, false);
req.send();
alert(req.responseText); // Displays "object not found" error.
背景资料:
我写的EPUB阅读器。 EPUB文件存储在服务器上并使用PHP进行提取。我想获取(例如)第1章的内容,该内容存储在提取位置的HTML文档中。
解决方案
问题是Firefox在反向链接中存在反斜杠问题。 在发送请求之前,我只是用正斜杠替换了所有的反斜杠。
答
“找不到对象”文本是某些Web服务器中HTTP 404错误的别名。如果您在req.send();
之后运行alert(req.status);
,它可以提供有关可能存在问题的信息。就你而言,它实际上显示了404错误,并且可以追溯到其中包含\
个字符的URL。
你使用'false'使其同步的任何原因?由于它是一个POST请求,因此您可能希望在'req.send();'之前使用'req.setRequestHeader(“Content-type”,“application/x-www-form-urlencoded”);'。你确定这个URL是否存在? – Ian 2013-04-29 18:55:58
没有真正的理由让它同步;可能会改变它,当它工作。我添加了setRequestHeader,它仍然不起作用。是的,我100%确定网址存在(它可以在Chrome中运行)。 – 2013-04-29 19:00:40
那么,如果你做了'alert(req.status)',显示了什么?'在你的另一个'alert'之前? – Ian 2013-04-29 19:01:15