XML解析错误:在FireFox中格式不正确,但在Chrome中表现不错

时间:2011-10-04 00:41:37

标签: jquery ajax firefox

我使用如下的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”

2 个答案:

答案 0 :(得分:24)

您的服务器未返回内容类型,因此Firefox假定由于这是_XML_HttpRequest,您的响应可能是XML并尝试解析它。当失败时,它会停止尝试并报告这毕竟不是XML。

Chrome可能会做同样的事情,但不报告任何内容。

我建议实际发送一个Content-Type标头,说明您的数据是什么。

答案 1 :(得分:0)

只需添加此代码。问题是服务器未指定mime类型,firefox将其作为xml。该代码将指定xhr响应将是哪种Mime类型。

$response = file_get_contents($site);