怎么配置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个回答

你试试把上面那些替换成
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请求。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐