【发布时间】:2015-07-19 00:02:12
【问题描述】:
我有一个用例,我发出跨域 JSONP 请求。
$.ajax({
url: "http://anyorigin.com/get/?url=<any_website_url>&callback=?'",
dataType: 'jsonp',
success: function(data) {
console.log(data);
}});
它工作正常,但我注意到中文网站的数据出现乱码。我对此进行了调试,发现 response-header 始终设置为:
Response Header: Content-Type:text/javascript; charset=ISO-8859-1
现在这个字符集 ISO-8859-1 正在制造一个问题。它应该是 UTF-8。我基本上想始终将此字符集覆盖为 UTF-8。我知道我可以使用 ajax 做到这一点。我尝试使用以下代码 -
$.ajax({
url: "http://anyorigin.com/get/?url=www.google.com&callback=?'",
dataType: 'jsonp',
beforeSend: function(xhr) {
console.log(xhr);
xhr.overrideMimeType("text/javascript; charset=utf-8");
},
success: function(data) {
console.log(data);
}});
但这并没有解决问题。我猜因为 JSONP 请求不使用 XHR 对象,这将不起作用。
谁能告诉我如何实现这一目标,或者它是否可以实现? TIA。
【问题讨论】:
标签: javascript jquery ajax utf-8 jsonp