我正在为客户修改一个网站,他们正在使用新的 API 来发布新闻。新闻 API 来自单独的域,因此当我尝试访问时,会收到 CORS 策略错误。我说过,我认为他们需要将 CORS 访问控制标头添加到资源中,以便站点可以访问它,但他们说他们不需要这样做,因为 API 是公共的。
该网站是用 Nuxt 2 构建的,我使用 fetch 和 axios 来调用 API。
我尝试了不同的访问方法,但始终遇到相同的问题。
我是否可以通过其他方式访问此 API,或者我只需要返回客户端并告知他们需要更改 API?
谢谢
尝试访问 API 但不断收到 CORS 错误。客户说 API 是公开的。谁是对的?
两者皆有。 因为你们两个提出和回答不同的问题。 请记住,在这种情况下,“客户端”甚至可能不了解 CORS 是什么。
还有其他方法可以访问此 API 吗
是的。 同源策略特定于浏览器中运行的代码。 它不适用于 Web 应用程序中的服务器端代码。
您当然可以请求外部服务允许跨域请求。 但他们没有义务批准该请求并更改其政策。 如果是这种情况,那么它仅仅意味着您无法向他们的 API 发出跨源 AJAX 请求。
您可以做的是通过您自己的服务器代理这些请求。 因此,本质上,您可以向自己控制的服务器上的 API 端点发出 AJAX 请求,而这些端点中的服务器端代码将向外部服务发出 HTTP 请求。