【发布时间】:2012-04-05 16:24:16
【问题描述】:
在不传递任何数据参数时,我在 jQuery 中遇到了 PUT 和 POST ajax CORS 请求的奇怪问题。
所以我通过设置标头在我的服务器上启用了 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 的任何线索(我的服务器不接受“假”参数)。
【问题讨论】:
-
您设置了哪些 CORS 标头?设置 data:null 是否发送请求?你可以使用 Wireshark 来获取实际的请求/响应标头吗?
-
根本没有发送请求。它立即返回。我怀疑这可能是创建 multipart/form-data 字符串的函数中的错误。
标签: ajax jquery cross-domain cors