jQuery GET 到同一域上的 API 会出现 CORS 错误

标签 jquery .htaccess get cors

我正在尝试从同一域上的 API 加载一些数据。您可以在 http://bwq.aintno.info/adc_temp 找到该示例。 。请求在页面加载时启动,因此如果您查看控制台,您会发现请求失败。但是,如果我自己在浏览器中访问链接 ( http://bwq.aintno.info/ads/api/index.php/specimens ) 或使用 Postman 执行 GET 请求,它会很好地返回 JSON。这是我的 .htaccess 文件的内容:

Header set Access-Control-Allow-Origin "*"

有人知道如何解决这个问题吗?预先感谢您的帮助。

最佳答案

根据您的评论,我知道您使用了广告拦截器。

广告拦截器的问题是,它们通过匹配规则进行拦截,无论是通过 url 还是通过某些 dom 结构(如 class 名称或 id) >s)。

一般来说,如果您的浏览器出现问题,请在禁用所有扩展的情况下进行测试。这可以(在大多数情况下)通过使用隐私模式来完成,因为许多扩展在该模式下被禁用。或者使用未安装扩展的配置文件。

如果一切正常,那么它很可能是一个干扰扩展。

在您的情况下,问题在于网址:

 http://bwq.aintno.info/ads/api/index.php/specimens
                  ^________^

对于这部分,有一个匹配规则,例如EasyList (.info/ads/) - 其他列表中很可能也有类似的规则。

因此,一般来说,诸如 ads(或类似内容)之类的内容在之前或之后带有分隔符很可能会被屏蔽。

不仅广告拦截器会导致页面出现问题,还有其他扩展可能会导致页面损坏,因此您需要再次检查修改 dom 的常用扩展(我知道这不是一个好消息)。

但是你绝对应该根据过滤器列表检查你的 url,并且你也可以考虑根据它检查你的 dom。或者至少避免使用听起来像广告的网址或classid

有一件事我目前不知道,但现在让我有点担心的是,easy 列表中的规则是 .info/ads/。在我看来,像 script?param=.info/ads/ 这样的请求也可能被阻止。好吧,无论如何这应该被转义,但我认为我需要在我的工作流程中添加一些额外的测试。

关于jQuery GET 到同一域上的 API 会出现 CORS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17361434/

相关文章:

javascript - 如何让 JavaScript 中的这个 jQuery 工作

node.js - 为什么我的 express-server 仅通过浏览器支持 https 而不是通过其他 nodejs 脚本?

jquery - 获取未捕获的语法错误: Unexpected Token ':'

javascript - jQuery 验证 : determine if field was validated on form submit, 或差异。事件?

jquery - 如何在屏幕上保留 jQuery 对话框?

php - Silex 路由 .htaccess webroot

php - 带有符号链接(symbolic link)和索引文件的 .htaccess 配置未按预期工作

javascript - 寻找 javascript getter/setter 等效项。不会产生警告

JQUERY 切换和 Ajax

django - FCGI htaccess 处理程序