gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 06:56:35 24 4
gpt4 key购买 nike

我有这个网址:https://cdn.static.wizzair.com/en-GB/TimeTableAjax?departureIATA=BUD&arrivalIATA=TLV&year=2016&month=6

它返回给我一个 json。如果我使用浏览器访问此 URL,或者如果我在浏览器 (DHC) 上使用 REST 客户端触发请求,那么它可以工作!现在,对于我来说,有一个通过 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 cannot load https://cdn.static.wizzair.com/en-GB/TimeTableAjax?departureIATA=BUD&arrivalIATA=TLV&year=2016&month=6. The 'Access-Control-Allow-Origin' header has a value 'https://wizzair.com' that is not equal to the supplied origin. Origin 'https://localhost:3000' is therefore not allowed access.

这是预期的。但是为什么这可以在我的浏览器和本地 REST 客户端上运行呢?我做错了什么?

谢谢!

最佳答案

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

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

如需进一步阅读,请参阅What is JSONP all about

<小时/>

关于对问题的重大编辑:请参阅 this duplicate .

关于javascript - JSONP 请求永远不会调用成功回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37252953/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com