有没有办法避免使用$ http进行预检?

时间:2013-08-10 10:44:15

标签: angularjs cross-domain angularjs-service

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

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

2 个答案:

答案 0 :(得分:3)

这不是AngularJS所做的事情,而是您的浏览器根据跨源资源共享标准所做的事情。 See also this answer on a related issue

但是,如果您这样做以便AngularJS应用程序与您的资源在同一个域中提供(不同的子域将影响跨域),那么浏览器将不会发送OPTIONS请求,因为资源不再来自跨域服务器。

示例:

  • www.example.com请求api.example.com上的资源将触发OPTIONS请求
  • www.example.com从www.example.com/api请求资源触发OPTIONS请求

答案 1 :(得分:1)

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

How to skip the OPTIONS preflight request in AngularJS