JSONP调用显示“Uncaught SyntaxError:Unexpected token:”

时间:2013-10-03 17:57:14

标签: jquery jsonp

这是我的代码

$.ajax({
        url: 'https://api.flightstats.com/flex/schedules/rest/v1/json/flight/AA/100/departing/2013/10/4?appId=19d57e69&appKey=e0ea60854c1205af43fd7b1203005d59&callback=?',
        dataType: 'JSONP',
        jsonpCallback: 'jsonCallback',
        type : 'GET',
        async: false,
        crossDomain: true,
        success: function(data) {
            console.log(data);
        }
    });

我做错了什么?我应该在这里添加或更改任何内容吗? 任何帮助,将不胜感激。 感谢

3 个答案:

答案 0 :(得分:52)

工作小提琴:

http://jsfiddle.net/repjt/

$.ajax({
    url: 'https://api.flightstats.com/flex/schedules/rest/v1/jsonp/flight/AA/100/departing/2013/10/4?appId=19d57e69&appKey=e0ea60854c1205af43fd7b1203005d59',
    dataType: 'JSONP',
    jsonpCallback: 'callback',
    type: 'GET',
    success: function (data) {
        console.log(data);
    }
});

我必须手动将回调设置为callback,因为所有远程服务似乎都支持。我还更改了url以指定我想要jsonp。

答案 1 :(得分:18)

您正在尝试访问JSON,而不是JSONP。

请注意您的来源之间的区别:

https://api.flightstats.com/flex/schedules/rest/v1/json/flight/AA/100/departing/2013/10/4?appId=19d57e69&appKey=e0ea60854c1205af43fd7b1203005d59&callback=

实际的JSONP(包装函数):

http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=processJSON&tags=monkey&tagmode=any&format=json

搜索JSON + CORS /跨域策略,您将在此主题上找到数百个SO线程。

答案 2 :(得分:-1)

我跑这个

var data = '{"rut" : "' + $('#cb_rut').val() + '" , "email" : "' + $('#email').val() + '" }';
var data = JSON.parse(data);

$.ajax({
    type: 'GET',
    url: 'linkserverApi',
    success: function(success) {
        console.log('Success!');
        console.log(success);
    },
    error: function() {
        console.log('Uh Oh!');
    },
    jsonp: 'jsonp'

});

并在回复中编辑标题

  

'接入控制允许的方法' ,' GET,POST,PUT,DELETE'

     

'访问控制 - 最大值 - 年龄' ,' 3628800'

     

'访问控制 - 允许 - 来源',' websiteresponseUrl'

     

'内容类型',' text / javascript;字符集= UTF8'