Reputation: 333
I using jQuery Ajax like below:
$.ajax({
url: 'servlet/*****Servlet',
dataType: "text",
success: function(data) {
var subareaCoordsPGs = preprocessCoords(data);
}
});
it works good even i did not set the dataType in Chrome, however, it failed in FF with XML parsing error.
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=0XML 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...
------^
after searched, i know it is good to set the proper data type, i want it to be parsed just as normal text, but why Intelligent Guess not works in FF, even i set it's type is "text" explicitly?
Upvotes: 23
Views: 39754
Reputation: 111
Just Add this code. The problem is the server did not specify the mime type and firefox takes it to be xml. This code will specify what Mime type the xhr response is going to be.
beforeSend: function(xhr){ xhr.overrideMimeType( "text/plain; charset=x-user-defined" );},
Upvotes: 5
Reputation: 35064
Your server is not returning a content-type, so Firefox assumes that since this is _XML_HttpRequest your response might be XML and tries to parse it. When that fails, it stops trying and reports that this wasn't XML after all.
Chrome likely does the same but doesn't report anything.
I suggest actually sending a Content-Type header indicating what your data is.
Upvotes: 34