我正在使用whateverorigin.org进行跨域调用并将html恢复为显示在div中。但有些不是英文字符很奇怪(一个小方块)。以下是我的代码。
$.ajaxSetup({ scriptCharset: "utf-8" , contentType: "application/x-www-form-urlencoded; charset=utf-8"});
$.getJSON('http://whateverorigin.org/get?url=' + encodeURIComponent('https://www.testserver/index.html') + '&callback=?', function(data){
$("div#test").html(data.contents);
});
如何找回正确的角色。
答案 0 :(得分:0)
您正在执行JSONP请求,该请求是通过向指向远程内容的当前页面添加<script>
元素而不是使用普通的XMLHttpRequest来实现的。
尽管使用UTF-8解码XHR / JSON响应,但使用浏览器认为当前页面编码的任何内容来解释<script>
。因此,如果您未使用<meta charset="UTF-8">
或Content-Type: text/html;charset=utf-8
指定,则浏览器必须猜测。如果它猜测UTF-8以外的东西(非常可能),那么包含的脚本将被误解码。