2011-10-04 42 views
11

我使用jQuery的Ajax像下面良好的Chrome:
XML解析錯誤:沒有很好地形成,在FireFox但

$.ajax({ 
url: 'servlet/*****Servlet', 
     dataType: "text", 
     success: function(data) { 
     var subareaCoordsPGs = preprocessCoords(data); 
     } 
    }); 

它的工作好,甚至我沒有設置在Chrome中的數據類型,但它失敗帶有XML解析錯誤的FF。

Response Headersview source
Server Apache-Coyote/1.1
Transfer-Encoding chunked
Date Tue, 04 Oct 2011 00:08:08 GMT
Request Headersview source
Host localhost:8080
User-Agent Mozilla/5.0 (Windows NT 5.2; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
Accept 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
Connection keep-alive
X-Requested-With XMLHttpRequest
Referer http://localhost:8080/
*/
Cache-Control max-age=0

XML Parsing Error: not well-formed Location: moz-nullprincipal:{2f6a8381-b987-448b-88c2-e89c4e13440b} Line Number 1, Column 4:

[email protected] -33.9353900931769,151.247877472978 -33.9360784582012,151.24...
------^

搜索後,我知道這是好事,設置正確的數據類型,我希望它被解析就像普通的文本,但爲什麼在FF 智能猜沒有作品,哪怕我設置它的類型「文字」明確嗎?

+1

請注意,即使您收到此消息,您的成功呼叫可能會觸發該數據。最新版本的Firefox可能會抱怨,但仍然會繼續,或者至少在我的情況下,Firefox 55已經做到了。這個錯誤信息對我來說是一段紅鯡魚,因爲我認爲它是致命的。 –

+0

@ J.Allen:我面臨同樣的問題。我在最新版本的Firefox中看到了這個問題。任何想法來解決它? – santoshM

回答

16

你的服務器沒有返回一個內容類型,所以Firefox假定這是_XML_HttpRequest,你的響應可能是XML並試圖解析它。當失敗時,它會停止嘗試並報告這畢竟不是XML。

Chrome可能會做同樣的事情,但不會報告任何內容。

我建議實際發送一個Content-Type標題,指明你的數據是什麼。

+0

感謝您的提示。我使用jQuery Ajax設置了Content-Type text/plain; charset = UTF-8,如設置參數contentType:「text/plain; charset = UTF-8」,它仍然適用於Chrome,但不適用於FireFox – qc999

+0

@ qc999我不知道jQuery的功能。它是否在XHR對象上調用overrideMimeType? –

+0

@ Boris Zbarsky我已經檢查過FireBug的請求頭,它看起來像這樣:Host:localhost:8080 User-Agent: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:zh-cn,en; q = 0.5 Accept-Encoding:gzip,deflate Accept-Charset:ISO-8859-1,utf-8; q = 0.7,*; q = 0.7 Connection:keep-alive Content-Type:text/plain; charset = UTF-8 X-Requested-With:XMLHttpRequest所以我假設它已經覆蓋內容類型。但仍然有相同的XML解析問題。 – qc999

相關問題