You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
*代表任何域都可以访问,可以改成只允许某个域访问,如Access-Control-Allow-Origin: http://www.zlzkj.com。
这样的配置虽然开启了跨域请求,但只支持GET HEAD POST OPTIONS请求,使用DELETE发起跨域请求时,浏览器出于安全考虑会先发起OPTIONS请求,服务器端接收到的请求方式就变成了OPTIONS,所以引起了服务器的405 Method Not Allowed。
转载
原文地址:Nginx跨域配置,支持DELETE,PUT请求
自己解决跨域的几种简单方式
背景描述
最近在研究RESTful API接口设计,使用的是Nginx,
要实现本地
http://127.0.0.1
跨域访问服务器端http://api.zlzkj.com
,并且要支持DELETE PUT等请求。
跨域配置
只需要在Nginx配置文件里加入以下配置,即可开启跨域
*代表任何域都可以访问,可以改成只允许某个域访问,如Access-Control-Allow-Origin:
http://www.zlzkj.com
。这样的配置虽然开启了跨域请求,但只支持GET HEAD POST OPTIONS请求,使用DELETE发起跨域请求时,浏览器出于安全考虑会先发起OPTIONS请求,服务器端接收到的请求方式就变成了OPTIONS,所以引起了服务器的405 Method Not Allowed。
所以要对OPTIONS请求进行处理
当请求方式为OPTIONS时,设置Allow的响应头,重新处理这次请求。
配置好并重启Nginx,刷新页面重新发起请求,在控制台里你会发现,出现了二次请求,
第一次是OPTIONS请求,第二次才是DELETE请求,这就是对OPTIONS请求进行处理的结果,到这里总算完成了一次DELETE跨域请求了。
完整配置参考
放到配置文件的server {}里
参考文章
总结
虽然最终配置代码没有几行,过程还是比较折腾的。
一开始不断地去翻墙,查阅相关文章,好不容易找到了跨域配置方法,却发现不支持DELETE等请求方式,于是又重新去翻墙,把原来的相关文章再次翻了一遍,才查到了些蛛丝马迹,又通过论坛提问,最终才找到了相应的解决方法,多折腾总有收获。
The text was updated successfully, but these errors were encountered: