$.ajax({
url: "https://api.steampowered.com/IDOTA2Match_570/GetMatchDetails/V001",
jsonp: "callback",
dataType: "jsonp",
data: {
match_id:27110133,
key: '2B58A9C96FD73EC323CCFDA5383C4BBC',
format: "json"
},
success: function( response ) {
console.log( response ); // server response
}
});
这样请求一定要在服务器端设置格式为jsonp吗?或者说客户端有什么方法能解决这种跨域的GET请求。
现在json格式非打印错误
V001:2 Uncaught SyntaxError: Unexpected token :
能不能帮我解答下,谢谢~
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
JSONP的原来是用script加载一段服务端根据参数生成的函数,然后在本地执行。jQuery会在本地保存一个临时函数 类似于
window.callback = function (res) {
// ...
}
然后服务端返回的script脚本里是一个刚刚之前的函数
callback({...obj})但是你现在调用的api依然返回的是json字符串,js解析当然报错。
无论是使用
access-control-allow-origin还是jsonp都需要服务端支持所以你让你们的后端做一个托传吧,前端不用做任何处理,你访问自己的服务器 服务端再去调用你这个第三方api接口
感觉题主应该是没明白 jsonp 的使用原理
并不是 "服务端设置"
题主把服务器端返回的内容一并贴出来看看吧,应该是后端返回的数据格式有问题。
很可能你服务端返回的只是json数据而非jsopnp数据
感觉楼主还不太明白JSON P的实现原理,可以看看之前我写的一篇文章https://segmentfault.com/a/1190000004761...
jsonp与ajax是有区别的
jsonp的原理是在页面中插入script标签, 所以服务器返回的格式, 应当是js代码, 类似
callback({
});