我使用如下的jQuery Ajax:
$.ajax({
url: 'servlet/*****Servlet',
dataType: "text",
success: function(data) {
var subareaCoordsPGs = preprocessCoords(data);
}
});
即使我没有在Chrome中设置dataType也行得很好,但是,在FF解析错误的情况下,它失败了。
响应标题查看源
服务器Apache-Coyote / 1.1
Transfer-Encoding chunked
Date Tue,04 Oct 2011 00:08:08 GMT
请求标题查看源
主机localhost:8080
用户代理Mozilla / 5.0(Windows NT 5.2; WOW64; rv:7.0.1) Gecko / 20100101 Firefox / 7.0.1
接受text / plain, / ; Q = 0.01
Accept-Language en-us,en; q = 0.5
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8; q = 0.7,; q = 0.7
连接保持活动的X-Requested-With XMLHttpRequest
推荐人http://localhost:8080/ * /
Cache-Control max-age = 0
XML解析错误:格式不正确的位置: moz-nullprincipal:{2f6a8381-b987-448b-88c2-e89c4e13440b}行号 1,第4栏:
534@151.248078368847 -33.9353900931769,151.247877472978 -33.9360784582012,151.24 ...
------ ^
搜索之后,我知道设置正确的数据类型是好的,我希望它像普通文本一样被解析,但为什么智能猜测在FF中不起作用,即使我设置它的类型明确地“text”?
答案 0 :(得分:24)
您的服务器未返回内容类型,因此Firefox假定由于这是_XML_HttpRequest,您的响应可能是XML并尝试解析它。当失败时,它会停止尝试并报告这毕竟不是XML。
Chrome可能会做同样的事情,但不报告任何内容。
我建议实际发送一个Content-Type标头,说明您的数据是什么。
答案 1 :(得分:0)
只需添加此代码。问题是服务器未指定mime类型,firefox将其作为xml。该代码将指定xhr响应将是哪种Mime类型。
$response = file_get_contents($site);