Lazy_Sleep
Lazy_Sleep
采纳率0%
2018-11-25 11:10 阅读 1.4k
已结题

怎么配置Nginx实现跨域和支持PUT DELETE请求?

跨域请求会先发一个OPTIONS再发PUT请求。。遇到405报错

按网上的方法加了下面的配置到location里

add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers Keep-Alive,User-Agent,If-Modified-Since,Cache-Control,Content-Type,Access-Control-Allow-Headers,Authorization,X-Requested-With,token;
add_header Access-Control-Allow-Methods  GET,POST,PUT,DELETE,PATCH,OPTIONS;
if ($request_method = 'OPTIONS') {
   return 204;
}

OPTIONS不报405了,但是PUT报了405错。。接着又按网上查到的加了一个配置

error_page 405 =200 /;

PUT请求虽然不报错,但是PHP里获取到的REQUEST_METHOD变成GET。。
因为要实现RESTful风格的API。。所以这样也不行

救命怎么办。。

  • 点赞
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • qq_28753501 qq_28753501 2018-11-25 17:58

    你试试把上面那些替换成
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Headers X-Requested-With;
    add_header Access-Control-Allow-Methods GET,PUT,POST,OPTIONS;
    还有error_page是配置出现405之后得跳转页面得,所以你肯定收到得是GET请求。

    点赞 评论 复制链接分享

相关推荐