为什么 Postman 在 JavaScript 中不会出现“请求的资源上不存在 'Access-Control-Allow-Origin' 标头”错误?


问题

当我们尝试向一个与我们当前 URL(我们从中发出请求的 URL)来源不同的远程服务器发出网络请求时,我们很可能会由于 Web 中的不同来源问题而遇到 CORS 错误,而当使用 Postman 等工具时,我们可以成功避免此 CORS 错误。

我们需要解释通过 Web 请求和通过 Postman 等扩展程序请求时响应行为的差异。

解释

当我们使用 Web 浏览器向与页面所在域不同的域发出网络请求时,它会阻止该请求,甚至都不会通知或联系服务器,并且通常出于安全原因允许在同一来源中发出请求。

但是,当我们使用 Postman 或任何此类工具时,它们不受此策略的限制。网页可以使用 XMLHttpRequest 对象从远程服务器发送和接收数据,但它们受同源策略的限制,但像 Postman 这样的扩展程序不受此限制。扩展程序可以与其来源之外的远程服务器通信,这就是 Postman 成功发出请求而网页由于 CORS 错误而失败的原因。

更新于: 2021年2月22日

693 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告