给我一个json。如果我使用浏览器访问此URL或者如果我在浏览器(DHC)上使用REST客户端触发请求,则可以正常工作!现在,对于我使用运行在https上的快速服务器,我正在尝试使用jQuery使这个请求无效。
不知何故,错误回调总是被执行,即使我在网络调试中看到请求是好的并且看到了json响应!
我的代码:
/// removed old code ///
$.ajax({
method: 'GET',
url: "https://cdn.static.wizzair.com/en-GB/TimeTableAjax?departureIATA=BUD&arrivalIATA=TLV&year=2016&month=6&callback=?",
dataType: "jsonp",
success: function() { console.log("success"); },
error: function(err) { ;console.log(err); }
});
** *编辑* **
所以我理解这不起作用,因为目标不支持jsonp。
将其更改为正常GET请求将收到错误并显示以下消息:
XMLHttpRequest无法加载https://cdn.static.wizzair.com/en-GB/TimeTableAjax?departureIATA=BUD&arrivalIATA=TLV&year=2016&month=6。 “Access-Control-Allow-Origin”标头的值“https://wizzair.com”不等于提供的原点。因此,不允许原点“https://localhost:3000”访问。
这是预料之中的。但是,为什么我的浏览器和本地休息客户端有效呢?我做错了什么?
谢谢!
答案 0 :(得分:1)
您请求的URL是返回JSON,而不是JSONP。
JSONP请求仅在服务器设计为使用JSONP格式的响应响应时才起作用。
如需进一步阅读,请参阅What is JSONP all about
关于问题的重要编辑:请参阅this duplicate。