首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >适用于HTML5混合应用的CORS

适用于HTML5混合应用的CORS
EN

Stack Overflow用户
提问于 2014-11-17 13:41:54
回答 4查看 2.3K关注 0票数 5

我读过很多关于CORS和如何允许访问-控制-允许-起源:*是web服务器的安全漏洞的东西。但这篇文章没有解释我们如何允许HTML5混合应用程序访问某些域上托管的web服务,这些域不允许使用通配符*

我的问题是:据我所知,HTML5混合应用程序没有在任何特定的域上运行,我们可以将其设置为访问-控制-允许-来源列表中的白名单域。那么,在Access-Control-Allow-Origin标签下,我们如何仍然可以通过web服务器上的ajax调用来访问混合应用请求数据中的web服务数据呢?

EN

回答 4

Stack Overflow用户

发布于 2015-12-18 16:48:25

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

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

票数 1
EN

Stack Overflow用户

发布于 2014-11-17 14:19:18

我已经使用phonegap,jquery和ajax构建了很多混合应用。你可以在php文件或.htaccess文件中设置你的CORS,如下所示,它将会工作。

对于.htaccess文件,请使用以下代码

代码语言:javascript
复制
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"

或者,您可以在所有要通过跨域访问的.php文件的第一个顶部集成下面的代码。只需知道符号*也可以使所有域都可访问

代码语言:javascript
复制
<?php
header('Access-Control-Allow-Origin: *');  
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type, Content-Range, Content-Disposition, Content-Description');
?>
票数 0
EN

Stack Overflow用户

发布于 2014-11-17 19:01:06

抱歉来迟了。好的,下面的任何一段代码都可以帮你完成。如果你还有什么问题,请叫我一声谢谢

代码语言:javascript
复制
in .htaccess file

Header set Access-Control-Allow-Origin: http://yourdomain-you-are-connecting-from.com


or in php



header("Access-Control-Allow-Origin: http://yourdomain-you-are-connecting-from.com");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26966268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档