使用POSTMAN时不会出现CORS问题

20

我已经使用POSTMAN一段时间了,用于发送 HTTP请求,例如GET, POST, PUT 用于RESTful Web服务。最近遇到一个问题,当通过浏览器发送请求到我的REST API时,我收到了这样的消息:

请求的资源中没有出现“访问控制允许来源头”,也就是CORS错误。

解决方法是在API中添加此类标头。但奇怪的是,当我通过POSTMAN发送相同的请求时,我能够得到回应。

所以我想知道通过POSTMAN发送请求与通过浏览器发送请求有什么不同。

我查看了这个问题:CORS with POSTMAN,但它并没有详细说明答案。

1个回答

27

来自Chrome开发扩展文档的跨源XMLHttpRequest

常规网页可以使用XMLHttpRequest对象与远程服务器发送和接收数据,但是它们受到同源策略的限制。扩展没有这样的限制。只要首先请求跨源权限,扩展就可以与其来源之外的远程服务器通信。

基本上,浏览器扩展程序比网页内容拥有更多的特权。在Chrome扩展程序中,有一个选项可以启用跨源访问。


所以,这个扩展的行为是假设服务器端启用了跨站请求。如果服务器本身阻止跨站请求会发生什么? - Vrishank
@Vrishank 你需要弄清楚服务器是如何决定阻止请求的。也许你需要添加一个 referer header。 - Alexander O'Mara

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接