gpt4 book ai didi

ajax - 没有数据参数的 jQuery PUT/POST ajax CORS 请求

转载 作者:行者123 更新时间:2023-12-01 06:55:20 29 4
gpt4 key购买 nike

当不传递任何数据参数时,我在 jQuery 中的 PUT 和 POST ajax CORS 请求中遇到了一个奇怪的问题。

因此,我通过设置 header 在我的服务器上启用了 CORS。例如,当我这样做时,一切正常:

$.ajax({
url: "http://127.0.0.1/R/index.html",
type: "PUT",
data: {foo:"bar"}
});

但是,当我在不设置 data 参数的情况下执行相同的请求时,firefox 会返回而不会发布 ajax:

$.ajax({
url: "http://127.0.0.1/R/index.html",
type: "PUT"
});

请注意,这只发生在 POST 和 PUT 方法中,当请求中指定了完整的 url,并且没有指定 http 数据参数时。当 url 与页面本身位于同一域时也会发生这种情况(因此不需要 CORS)。如果我只在 url 中指定路径而不是完整的 url,则不会发生这种情况。

任何关于如何在不传递任何参数的情况下执行 POST/PUT 的线索(我的服务器不会接受“假”参数)。

最佳答案

我现在非常确定这是 jQuery 中的一个错误,当它在没有发布数据的情况下在跨域 ajax 请求中调用“multipart/form-data”编码器时。

可以通过使用这样的方法来避免:

if(jQuery.isEmptyObject(mydata)){
$.ajax({
url: "http://127.0.0.1/R/index.html",
type: "PUT",
contentType: 'application/x-www-form-urlencoded'
});
} else {
$.ajax({
url: "http://127.0.0.1/R/index.html",
type: "PUT",
data: mydata
});
}

关于ajax - 没有数据参数的 jQuery PUT/POST ajax CORS 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9799735/

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