javascript - jsonp跨域请求失败

查看:116
本文介绍了javascript - jsonp跨域请求失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

$.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 :

能不能帮我解答下,谢谢~

解决方案

JSONP的原来是用script加载一段服务端根据参数生成的函数,然后在本地执行。
jQuery会在本地保存一个临时函数 类似于
window.callback = function (res) {
// ...
}
然后服务端返回的script脚本里是一个刚刚之前的函数callback({...obj})
但是你现在调用的api依然返回的是json字符串,js解析当然报错。

无论是使用access-control-allow-origin 还是 jsonp都需要服务端支持
所以你让你们的后端做一个托传吧,前端不用做任何处理,你访问自己的服务器 服务端再去调用你这个第三方api接口

这篇关于javascript - jsonp跨域请求失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆