微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 适用于HTML5混合应用程序的CORS

我已经阅读了很多关于CORS的内容以及如何允许Access-Control-Allow-Origin:*是Web服务器的安全漏洞.但是这篇文章都没有解释我们如何允许 HTML5混合应用程序访问某些域上托管的Web服务,这些域服务不允许使用通配符char *

我的问题是:据我所知,HTML5混合应用程序不能在任何特定域上运行,我们可以在Access-Control-Allow-Origin列表中将其设置为列入白名单的域.那么我们如何仍然可以通过web服务器上的Ajax调用从混合APP请求数据访问Web服务数据,而不允许在Access-Control-Allow-Origin标签下?

解决方法

在设备上运行时,您的应用程序将在浏览器中运行,但将从本地文件系统(从类似于file://path/to/index.html的位置)运行.因此,不存在原点.浏览器不会执行任何预检OPTIONS请求,也不会因为交叉原因问题而阻止对API的调用,原因很简单,因为没有原点.

因此,您可以将服务器配置为仅允许相同的源请求,以确保安全.仍然允许从设备拨打电话.但是,当您在本地开发计算机上的浏览器中运行应用程序时(出于测试目的),您可能会遇到CORS问题,因为在这种情况下有一个来源.您可以通过允许本地域访问API(记住在生产中删除它),使用浏览器插件来禁用CORS或使用代理来解决此问题.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐