使用 POSTMAN 时不会出现 CORS 问题
Posted
技术标签:
【中文标题】使用 POSTMAN 时不会出现 CORS 问题【英文标题】:CORS issue doesn't occur when using POSTMAN 【发布时间】:2016-08-01 22:17:54 【问题描述】:一段时间以来,我一直在使用 POSTMAN 为 RESTful Web 服务发送 HTTP requests like GET, POST, PUT
。最近遇到一个情况,通过浏览器向我的 REST API 发送请求时,我收到一条消息,
请求的资源上不存在访问控制允许源头。
解决方案当然是在 API 中添加这样的标头。 然而奇怪的是,当我通过 POSTMAN 发送相同的请求时,我能够得到响应。
所以我想知道通过 POSTMAN 发送请求与通过浏览器发送请求有何不同。
我解决了这个问题:CORS with POSTMAN,但它确实没有提供详细的答案。
【问题讨论】:
【参考方案1】:来自 Chrome 开发扩展文档中的 Cross-Origin XMLHttpRequest:
常规网页可以使用XMLHttpRequest 对象从远程服务器发送和接收数据,但它们受到same origin policy 的限制。扩展并没有那么有限。只要首先请求跨域权限,扩展程序就可以与其源之外的远程服务器通信。
基本上浏览器扩展比网页内容拥有更多的权限。对于 Chrome 扩展程序,可以选择启用跨域访问。
【讨论】:
因此,此扩展行为假设跨站点请求已从服务器端启用。如果服务器本身阻止跨站请求会怎样? @Vrishank 你必须弄清楚有问题的服务器是如何决定阻止请求的。也许你需要添加一个referer header。以上是关于使用 POSTMAN 时不会出现 CORS 问题的主要内容,如果未能解决你的问题,请参考以下文章
CORS - 从 Postman 伪造 CORS 预检无法返回标头
使用 Postman 时 django-cors-header 无法按预期工作