成功回调永远不会被JSONP请求调用

success callback never get invoked for a JSONP request

本文关键字:JSONP 请求 调用 回调 永远 成功      更新时间:2023-09-26

我有这个URL:https://cdn.static.wizzair.com/en-GB/TimeTableAjax?departureIATA=BUD&arrivalIATA=TLV&年份=2016&月=6

它会返回一个json。如果我用浏览器访问这个URL,或者如果我在浏览器上使用REST客户端(DHC)启动请求,它会起作用!现在,对于一个运行在https上的express服务器来说,我正试图使用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&年份=2016&month=6。"Access Control Allow Origin"标头具有值https://wizzair.com',该值不等于提供的原点。原点'https://localhost:3000因此不允许访问。

这是意料之中的。但这是如何在我的浏览器和本地rest客户端上工作的呢?我做错了什么?

谢谢!

您请求的URL返回的是JSON,而不是JSONP。

只有当服务器被设计为使用JSONP格式的响应来响应JSONP请求时,JSONP才会工作。

欲了解更多信息,请参阅什么是JSONP关于


关于对问题的重大编辑:请参阅此副本。