【发布时间】:2017-04-09 06:27:04
【问题描述】:
在使用框架 $$.ajax 时与 CORS 错误作斗争数小时后,我决定向社区寻求帮助。
我正在玩 PhoneGap 和 Framework7。我尝试在我的 .local 域上调用 API,但出现 CORS 错误“跨源请求被阻止:同源策略不允许读取位于 http://domain.local/api/call 的远程资源。(原因:CORS 标头 'Access-Control-Allow-原点缺失)。”。我在 .htaccess 中启用了 CORS 标头,当使用任何 REST 客户端调用它时,我可以看到 Access-Control-Allow-Origin "*" 标头作为响应,但 Framework7 $$.ajax 仍然不起作用。我在 ajax 配置中设置了“crossDomain: true”,但还是不行。
当我使用 jQuery $.ajax 时,在浏览器中一切正常,但在 PhoneGap 应用模拟器的移动设备上却不行。
所以我让 jQuery 至少在浏览器中工作,我在响应头中看到 Access-Control-Allow-Origin "*" 标头,但 Framework7 不起作用。
或者也许你们可以建议其他设置PhoneGap + 其他框架来构建应用程序。
任何帮助表示赞赏。
【问题讨论】:
-
but still doesn't work- 修复 CORS 问题后,您会收到哪些错误或消息?听起来您是在说您仍然遇到 CORS 错误,但是 a) 不清楚并且 b) 您不太可能使用一个库遇到 CORS 问题,而另一个库没有 - 最后,它们都使用相同的 javascript从服务器获取数据的方法,因此将遵守相同的规则 -
感谢 Jaromanda X。所以 Framework7 $$.ajax 会导致 CORS 错误,而 JavaScript jQuery $.ajax 不会。我现在这听起来很奇怪,但这就是我得到的。我使用 jQuery 工作了 6 年,从来没有遇到过这个问题。所以我什至尝试过 XMLHttpRequest()。不幸的是,这也不起作用。我注意到的是,当我使用 jQuery $.ajax PhoneGap 通过一些代理运行它,但当我使用 Framework7 $$.ajax 时它不会。我需要补充一点,所有这些尝试都是在 PhoneGap 浏览器模拟器中完成的。此外,jQuery 可以在浏览器中运行,但不能在移动设备上运行。跳,现在很清楚了。
标签: javascript ajax .htaccess cors html-framework-7