XMLHttpRequest错误:起源空不受访问控制允许的起源

阅读时长 3 分钟读完

什么是XMLHttpRequest?

XMLHttpRequest 是一种在 Web 应用程序中发送 HTTP 请求和接收服务器响应的技术。它允许您更新一个 Web 页面而不必重新加载整个页面。

起源空不受访问控制允许的起源错误(CORS)

当您在使用 XMLHttpRequest 时,可能会遇到起源空不受访问控制允许的起源错误。这是由于浏览器实现了跨域资源共享(CORS)策略以增强 Web 安全性。

从不同的域名、端口或协议请求数据时,浏览器会阻止该请求,除非目标网站明确允许该请求。这是为了防止恶意代码将用户数据发送到恶意站点。

如果您尝试从不同源发出 XMLHttpRequest 请求,并且该请求未被目标站点明确允许,则会收到以下错误消息:

这告诉您您无法通过 JavaScript 访问来自其他域的数据。

如何解决 CORS 错误?

要解决此错误,您需要确保目标站点明确允许来自您的域名的请求。这可以通过在响应头中添加一个“Access-Control-Allow-Origin”标头来完成。

例如,如果您希望允许所有来源的请求,则可以将以下内容添加到目标站点的响应头中:

但是,由于安全原因,不建议使用通配符(*)来允许所有来源的请求。相反,最好指定允许的来源。

例如,要允许来自您的域名的请求,请将以下内容添加到响应头中:

示例代码

以下是使用 XMLHttpRequest 从另一个域加载数据时如何解决 CORS 错误的示例代码:

-- -------------------- ---- -------
----- --- - --- -----------------
--------------- ---------------------------
---------- - -- -- -
  -- ----------- --- ---- -
    --------------------------
  - ---- -
    ------------------------------
  -
--
----------- - -- -- -
  ----------------- ----- -------- ----- -------- --- --------
--
-----------

如果您在运行此代码时遇到了起源空不受访问控制允许的起源错误,则需要联系目标站点的管理员以获取他们的帮助。他们需要添加“Access-Control-Allow-Origin”标头并将其设置为您的域名。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/8155

纠错
反馈