javascript - HTML5 混合应用程序的 CORS

标签 javascript ajax html cors hybrid

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

我的问题是:据我所知,HTML5 混合应用程序无法在我们可以在 Access-Control-Allow-Origin 列表中设置为白名单域的任何特定域上运行。那么我们如何仍然可以通过在 Access-Control-Allow-Origin 标签下不允许 * 的 Web 服务器上进行 ajax 调用来访问来自混合 APP 请求数据的 Web 服务数据?

最佳答案

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

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

关于javascript - HTML5 混合应用程序的 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26966268/

相关文章:

javascript - AJAX 是一种独立于 Javascript 的语言,还是一个 JavaScript 框架?

javascript - 如何删除 html 表格中连续单元格的类

html - 针对不同平台调整图像大小

javascript - 使用 javascript 看不到一些 cookie

javascript - 根据页面返回的 url 编辑复选框

javascript - Niceedit 可在 localhost 上运行,但不能在 Heroku 上运行

JavaScript - 从类名获取大小并打开新窗口

javascript - 将 BCrypt 哈希传递给另一个函数

JavaScript + SQL、.NET

php - 如何使用javascript查询数据库?