I have a bit of JavaScript using jQuery that loads data with a quick $.get(url, function(response){ /* … */}); The data is a straight up text file that is then handled by the JavaScript in that response function.
This has worked for me quite nicely, but I just ran into this problem on my machine: Using the same code, I now get an error saying:
XML Parsing Error: not well-formed Location:
moz-nullprincipal:{74091275-3d54-4959-9613-5005459421ce} Line Number
1, Column 16: image:tiles.png;
—————^
If I load this from another server, it works perfectly. It’s only when I host it on my own PC that I get this error (note that it previously worked perfectly on my own PC as well, which is running Ubuntu and serving the page with Apache). After much headbanging, I found that if I change the extension on the filename I’m loading, it works fine. The file was previously named “test.sprite”, and that is when I got the error. If I renamed it to “test.txt” it loads fine.
This error ~seems~ to coincide with a recent upgrade on my system. I upgraded Ubuntu 10.something to 12.04. I’m assuming there was some sort of update in the Apache config that I didn’t notice which is causing it to send different headers depending on the extension of the file (the two named here are identical – the .txt is actually just a symlink to the .sprite).
So I have a solution to my immediate problem, but I’d rather not bow to the system’s idiosyncrasies. Any idea how I can fix this without renaming the file?
Please note that I’m not an apache expert, but I’ll have a crack with pointing you in the right direction.
If undefined, the jQuery AJAX functions will assume the content-type is whatever header Apache has sent back. You can quite simply see what the response is by running your code in Chrome, opening developer tools (Ctrl + Shift + J) and choosing “Network”. After clicking on the relevant request you will see the headers coming back, including the content-type.
In your Apache configuration the content-type for the sprite is probably not defined. You can add this with the following line:
This should be in a configuration file parsed by Apache – depending on your version this could be apache.conf, httpd.conf, or another file.
I hope this helps or at least points you in the right direction. Remember to configtest before restarting Apache!