显示“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); } });
我究竟做错了什么? 我应该添加还是改变这里的任何东西? 任何帮助,将不胜感激。 谢谢
工作小提琴:
$.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。
注意你的来源之间的区别:
和实际的JSONP(一个包装function):
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'