读取和解析unicode json数据在IE和FF中不起作用
我想从另一个域(CORS)读取json数据文件。 此文件包含Unicode数据,如:
{"id":21,"name":"پرسپولیس تهران"}
我使用了像这样的JQuery Ajax函数:
$.ajax({ type: "GET", cache: false, url: SDomain + 'XML/TeamXMLCache/' + filename + '.json', dataType: "json", contentType: 'application/json; charset=UTF-8', success: parseXml, error: function (request, status, errorThrown) { console.log(request); console.log(status); console.log(errorThrown); } });
这在Chrome 39中工作得很好,但在IE11和FF32中无效。
在IE中我得到parsererror错误。
欲获得更多信息:
- responseText是:
{"id":21,"name":"~13~HD3 *G1'F"}
- readyState的:4
- 状态文本: “OK”
- 状态:200
最后我的配置文件是:
那么请告诉我为什么? 我不是初学者!
真实样本是: 我的真实样本
当我加载http://static.persiangulfcup.org/XML/TeamXMLCache/21-%D9%BE%D8%B1%D8%B3%D9%BE%D9%88%D9%84%DB%8C%D8% B3-%D8%AA%D9%87%D8%B1%D8%A7%D9%86.json?_ = 1417448329770 Firefox在浏览器窗口中显示JSON正常,但在文档信息中指出编码为UTF -16LE而不是你post中指出的UTF-8。 基于此,我认为您需要确保数据是正确的UTF-8编码,或者您需要确保它提供了指示实际编码的内容类型标头。
感谢@Martin的正确答案。
问题是我创建我的json文件。 我使用System.Text.Encoding.Unicode
而不是System.Text.Encoding.UTF8
来保存我服务器中的json文件。
但我的新问题是你如何理解我的文件是UTF-16LE格式? 请发布作为答案然后我可以将其标记为正确答案。
- CORS预检请求返回“403 Forbidden”; 后续请求然后仅在Chrome中发送
- 如何在跨域(CORS)XMLHttpRequest中发送自定义标头?
- 捕获XMLHttpRequest跨域错误
- Bottle Py:为jQuery AJAX请求启用CORS
- 使用jquery的CORS错误
- Java Spring REST API CORS不适用于通过jQuery与Chrome进行DELETE请求
- Jquery AJAX:请求的资源上没有“Access-Control-Allow-Origin”标头
- CORS问题:获取错误“No’Access-Control-Allow-Origin’标题存在”实际存在时
- Jirarest客户端在javascript给出错误