如何利用postman模拟options请求?nginx测试cors
发布于 作者:苏南大叔 来源:程序如此灵动~
前文说如何配置nginx以适应cors的需求,其中,最重要的header就是:Access-Control-Allow-Origin。它控制了谁可以做出跨域接口请求。postman作为专业的接口对接工具,当然可以用于模拟options请求。那么,本文讲讲述两者可能存在的关系,以及如何模拟来源域名Origin。

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。测试环境:win10,chrome@135.0.7049.41,nginx@1.15.11,postman@11.40.5。
前文回顾
前文说如何配置nginx以适应cors的需求,其中,最重要的header就是:Access-Control-Allow-Origin。它控制了谁可以做出跨域接口请求。偷懒的情况下,它会被设置为*,但这是不安全的行为。正常的情况下,应该根据实际情况进行设置,例如https://newsn.net。如果有多个来源被允许的话,就应该利用set $cors_origin进行修改了。
这里需要注意的就是:在 Nginx 中,$http_origin 是请求头中 Origin 字段的值,也就是来源页的域名。它表示发起跨域请求的页面所在的域名,而不是当前服务器的域名。origin不是referer,仅仅是referer的一部分。
观察实际请求
先发出一个实际的请求,浏览器里面监控到的是个preflight类型。注意看请求面板,header里面origin和referer并不是一样的。

postman模拟
设置接口请求类型是options,然后设置请求的header,增加origin,如下图所示:

就可以检测nginx配置的cors效果是否合适了。


参考文章
结语
这个postman小工具是非常好用的。苏南大叔的更多postman使用小技巧,可以参考: