2013-04-29 118 views
1

我使用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在反向链接中存在反斜杠问题。 在发送请求之前,我只是用正斜杠替换了所有的反斜杠。

+0

你使用'false'使其同步的任何原因?由于它是一个POST请求,因此您可能希望在'req.send();'之前使用'req.setRequestHeader(“Content-type”,“application/x-www-form-urlencoded”);'。你确定这个URL是否存在? – Ian 2013-04-29 18:55:58

+0

没有真正的理由让它同步;可能会改变它,当它工作。我添加了setRequestHeader,它仍然不起作用。是的,我100%确定网址存在(它可以在Chrome中运行)。 – 2013-04-29 19:00:40

+0

那么,如果你做了'alert(req.status)',显示了什么?'在你的另一个'alert'之前? – Ian 2013-04-29 19:01:15

回答

2

“找不到对象”文本是某些Web服务器中HTTP 404错误的别名。如果您在req.send();之后运行alert(req.status);,它可以提供有关可能存在问题的信息。就你而言,它实际上显示了404错误,并且可以追溯到其中包含\个字符的URL。