1

我在远程服务器上使用 nginx,并且不支持OPTIONS我一直非常卡住的方法。服务器和角度都拒绝互相交谈。

我只想发出一个简单的 $http.post() 请求。有没有办法将服务配置为仅发送 POST 请求,而不使用 OPTIONS 进行任何预检?

4

2 回答 2

3

这不是 AngularJS 所做的事情,而是您的浏览器根据跨域资源共享标准所做的事情。另请参阅有关相关问题的此答案

但是,如果您使 AngularJS 应用程序从与您的资源相同的域提供服务(不同的子域将影响跨域),那么浏览器将不会发送 OPTIONS 请求,因为资源不再来自跨域服务器。

例子:

  • www.example.com 请求 api.example.com 上的资源将触发 OPTIONS 请求
  • www.example.com 从 www.example.com/api 请求资源不会触发 OPTIONS 请求
于 2013-08-10T11:36:01.257 回答
1

如果 CORS 是不可避免的,您可以将请求的标头更改为 text/plain,然后根据下面此链接中的答案手动解析您的响应

如何在 AngularJS 中跳过 OPTIONS 预检请求

于 2015-09-25T21:44:30.137 回答