0


记录swagger提示Network Error,postman访问正常

在swagger调试时,报错

swagger报错

F12报错提示

Access to XMLHttpRequest at’http://127.0.0.1:9999/freightlogistics/carMain/list’ from origin ‘http://localhost:9999’ has been blocked by CORS policy: The’Access-Control-Allow-Origin’ header contains multiple values’http://localhost:9999, http://localhost:9999’, but only one is allowed.

postman显示正常

postman显示正常

问题在于swagger配置

swagger 配置
swagger:
  enabled: true
  title: xxx Swagger API
  gateway: http://${GATEWAY_HOST:127.0.0.1}:${GATEWAY-PORT:9999}
  token-url: ${swagger.gateway}/auth/oauth2/token
  scope: admin

  在Swagger配置中,如果设置了网关的地址为127.0.0.1,这意味着Swagger期望接收API请求来自同一个IP地址。如果你尝试使用localhost来访问Swagger UI并且进行API请求,即使127.0.0.1通常被解释为同一个localhost地址,在网络请求的层面上,它们可能被视为不同的源(origins)。这可能导致跨域资源共享(CORS)策略错误,因为服务端在收到请求时,检查了请求的Origin头部,并发现它并不匹配任何白名单或者配置的允许列表。如果不设置则不会出现跨域问题;

小知识:postman访问不跨域

  Postman 是一个 API 开发工具,它被用来发送 HTTP 请求和接收响应,而不受浏览器安全策略的限制。Postman 实际上并不是在一个网页上运行的,因此它不遵守同源策略(Same-Origin Policy)——一个浏览器安全特性,旨在防止某些类型的跨站点请求伪造攻击。
所以当你在 Postman 中发送请求时,即使是跨域的 API 请求,也不会出现跨域错误。这使得 Postman 成为开发和测试 API,特别是对于那些还没有正确配置 CORS 策略的后端服务的一个非常有用的工具。
  在开发前端应用程序时,由于浏览器安全机制,应当正视和处理跨域问题,而在使用 Postman 测试时,我们不需要担心这些问题。这可以帮助我们确认 API 是否可以正确响应请求,无论是否跨域,并排除可能是由于浏览器的安全限制导致请求失败的情况。

标签: postman 测试工具

本文转载自: https://blog.csdn.net/weixin_45381384/article/details/137864216
版权归原作者 9o高龄码农 所有, 如有侵权,请联系我们删除。

“记录swagger提示Network Error,postman访问正常”的评论:

还没有评论