Javascript jqueryajax禁用解析
我正在使用一些游戏api,它会根据请求以json格式返回数据 问题是,api位于不同的域上,因此不允许使用数据类型:“json”,因为跨域策略(错误:请求的资源上不存在“Access Control Allow Origin”头)。所以我试着用jsonp来代替。当我使用jsonp时,jQuery抛出parseError,因为来自服务器的数据是json而不是jsonp 我已经尝试过jsonpCallback,所有这类东西——服务器仍然返回json 我还尝试使用xhr.responseText,但它是空的。有没有办法告诉jQuery不要解析数据?我可以手动解析字符串,只要在jsonp上设置datatype,服务器就可以正确响应 数据从服务器返回。我知道它不是空的,我可以使用chrome中的开发工具来检查它 我的代码:Javascript jqueryajax禁用解析,javascript,jquery,ajax,json,jsonp,Javascript,Jquery,Ajax,Json,Jsonp,我正在使用一些游戏api,它会根据请求以json格式返回数据 问题是,api位于不同的域上,因此不允许使用数据类型:“json”,因为跨域策略(错误:请求的资源上不存在“Access Control Allow Origin”头)。所以我试着用jsonp来代替。当我使用jsonp时,jQuery抛出parseError,因为来自服务器的数据是json而不是jsonp 我已经尝试过jsonpCallback,所有这类东西——服务器仍然返回json 我还尝试使用xhr.responseText,但它
$.ajax({
url: "http://eu.battle.net/api/wow/character/turalyon/Blargh",
type: "get",
data: { fields: "quests" },
dataType: "json",
success: function(data, textStatus, jqXHR){
if(typeof func === "function"){
func(data);
}
},
error: function(jqXHR, textStatus, errorThrown){
contentField.html(textStatus);
}
});
jQuery没有解析数据。JSONP的工作原理是将数据编码为脚本中函数调用的参数,该脚本只包含该函数调用,然后通过向文档中添加脚本元素来加载它 JavaScript引擎正在尝试执行JavaScript 您无法通过尝试将任意数据作为JSONP加载来访问它。您请求它的站点必须以JSONP格式提供它。其他任何事情都会使同一原产地政策毫无意义