【发布时间】:2017-05-23 06:02:18
【问题描述】:
CORS 规范规定,如果 HTTP 请求被认为是“简单的”,则不需要 CORS 和/或预检。
我正在尝试执行似乎具有以下条件的 HTTP 请求:
- 我没有设置自定义 HTTP 标头。
- 我正在使用
POST方法。 - 我正在使用
application/x-www-form-urlencoded。
代码示例:
$.ajax({
type: 'POST',
url: 'http://example.org/',
data: {foo: 'bar'}
});
但是,在运行此程序时,请求仍会使用 OPTIONS 进行预检(失败)。我有什么明显的遗漏吗?
一些简单请求的引用:
【问题讨论】:
-
我真的很想看到有人给出一个 ajax POST 的例子,当源域不被允许时,有效负载不会触发 CORS。根据我对 CORS 目的的了解,我想不出允许这样做的情况。
-
@2by2 这是一个肮脏的解决方法。不会用 10 英尺的民意调查 jsonp。
-
JSONP 无论如何都不适用于发布请求。对简单的 GET 请求使用 JSONP 没有问题。
-
服务器是否在响应中发送
Access-Control-Allow-Origin标头?即使是简单的请求,也需要这样做。
标签: javascript jquery ajax cross-domain