ajax调用中的交叉原点错误

时间:2014-05-22 12:38:47

标签: ajax cross-domain mendeley

function getInfo()
{

    var URL="https://api-oauth2.mendeley.com/oauth/authorize?client_id=374&redirect_uri=https://localhost/api/mendeley/mendeley.php&response_type=code&scope=all&JSON=1";
    $.ajax({
        url: URL,
        type: 'get',
        dataType: "jsonp",
        jsonpCallback: "https://192.168.2.210/api/mendeley/mendeley.php",
        converters: {
            'text json': true
        },
        success: function (data) {
            console.log(data.content);


        },
        error: function(e) {
            console.log(e);
        }
    });
}

当我调用此函数时,这给了我错误 SyntaxError:语法错误

1 个答案:

答案 0 :(得分:0)

你有几个问题。


来自jQuery documentation

  

jsonpCallback
类型:字符串或函数()
指定回调   JSONP请求的函数名称。将使用此值代替   jQuery自动生成的随机名称。最好是   让jQuery生成一个唯一的名称,因为它可以让它更容易管理   请求并提供回调和错误处理。你可能想要   如果要启用更好的浏览器缓存,请指定回调   GET请求。从jQuery 1.5开始,您也可以使用一个函数   设置,在这种情况下,jsonpCallback的值设置为return   该函数的价值。

https://192.168.2.210/api/mendeley/mendeley.php不是有效的JavaScript函数名称。


如果我访问https://api-oauth2.mendeley.com/oauth/authorize?client_id=374&redirect_uri=https://localhost/api/mendeley/mendeley.php&response_type=code&scope=all&JSON=1https://api-oauth2.mendeley.com/oauth/authorize?client_id=374&redirect_uri=https://localhost/api/mendeley/mendeley.php&response_type=code&scope=all&JSON=1&callback=something,我会收到一个HTML文档,提示我登录。

您需要点击一个真正的JSONP端点才能使用JSONP。