【问题标题】:JQuery AJAX call throws Access-Control-Allow-Origin ErrorJQuery AJAX 调用引发 Access-Control-Allow-Origin 错误
【发布时间】:2013-05-08 21:00:15
【问题描述】:

我正在做一个项目,在使用 $.ajax 发出 GET 请求后,我收到 Access-Control-Allow-Origin 错误。但是,GET 请求被发送到服务器并且响应是预期的 XML 字符串。

由于该错误,success 函数永远不会触发,因此我无法读取 XML 响应,但我可以在日志中看到它。 error 函数不引用响应字符串,complete 函数也不引用。

无论 AJAX 请求是否失败,是否有另一种查看响应的方法?不幸的是,我无权访问服务器来修改来源限制,但我确实拥有这个盒子。

【问题讨论】:

  • 没有。拒绝访问。您必须使用服务器 ajax 代理或第三方代理(例如 YQL)来请求它。
  • 但是我收到了回复。是不是Access-Denied错误不让浏览器解析?
  • 正确。由于它不是同源请求,因此您无法使用javascript访问它。
  • 如果我正在访问本地设备(在这种情况下是 Apple TV),是否可以更改我的来源以使请求与域匹配?
  • 不,您需要在您请求的服务器上使用正确的 CORS 标头来执行此操作。

标签: jquery ajax response access-control


【解决方案1】:

在服务器的响应中,您必须设置: 访问控制允许来源:*

要小心,因为使用“*”,服务器将能够在不检查跨域限制的情况下响应所有人。如果您愿意,可以输入您提出请求的域。

如果你使用php:

<?php header('Access-Control-Allow-Origin: *'); ?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-26
    • 2018-12-12
    • 2018-03-16
    • 1970-01-01
    • 2014-07-15
    • 2014-12-25
    • 1970-01-01
    相关资源
    最近更新 更多