显示“Uncaught SyntaxError:Unexpected token:”的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); } }); 

我究竟做错了什么? 我应该添加还是改变这里的任何东西? 任何帮助,将不胜感激。 谢谢

工作小提琴:

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); } }); 

我不得不手动设置callbackcallback ,因为这是所有的远程服务似乎支持。 我也改变了url,指定我想要jsonp。

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

注意你的来源之间的区别:

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

和实际的JSONP(一个包装function):

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

searchJSON + CORS /跨域策略,你会在这个话题上find数百个SO线程。

我运行这个

 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'

'Access-Control-Max-Age','3628800'

'Access-Control-Allow-Origin','websiteresponseUrl'

'Content-Type','text / javascript; 字符集= UTF8'