gpt4 book ai didi

javascript - 为什么这个 jQuery.ajax 不会引发错误?

转载 作者:行者123 更新时间:2023-11-30 13:32:21 27 4
gpt4 key购买 nike

今天早上我们遇到了一个有趣的问题 - 问题本身的细节在这里不相关,我已经修复了它,但我确实遇到了一些关于 jQuery 的奇怪问题。

我在内部构建的站点仅在 https 上运行,因此 Apache 设置为将任何入站 http 请求重定向到其等效的 https。此重定向工作正常。但是,我的软件中有一个错误,我试图发送以下 ajax 请求:

jQuery.ajax({  type:       "PUT",
url: "http://somewhere.com/cmdt/todo_lists/8457/toggle",
data: { deployment_id: 827},
dataType: "script"});

我知道这会失败 - 我同意 jQuery 不想跟随重定向。但实际行为甚至更奇怪:我从来没有看到 xhr 请求发出!而且没有javascript错误!它只是默默地失败了。如果我将 url 更改为 https 或相对路径,它工作正常,没问题。我的问题是,为什么它之前不尝试发送请求?为什么它没有引发错误?

最佳答案

你没有失败的原因是因为它是一个跨站点请求,所以而不是使用 XMLHttpRequest ,它实际上生成了一个 HTML <script>标记并将其放入 DOM,并使用该机制加载文件。

这工作得相当好(考虑到它是对错误的浏览器“安全”概念的完全破解),但不幸的是,jQuery 无法在那个时候捕获错误。如果您打开了开发者模式,您可能会遇到浏览器错误,但仅此而已。

关于javascript - 为什么这个 jQuery.ajax 不会引发错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6293706/

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