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

时间:2014-11-17 05:41:54

标签: javascript ajax html5 cors hybrid

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

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

3 个答案:

答案 0 :(得分:0)

我使用phonegap,jquery和ajax构建了很多混合应用程序。您可以在php文件或.htaccess文件中设置CORS,如下所示,它将起作用。

对于.htaccess文件,请使用此

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文件的第一个顶部,以便通过跨域访问。 只要知道符号*也可以访问所有域

<?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');
?>

答案 1 :(得分:0)

抱歉迟到了。好的,下面的代码中的任何一个都能为您完成。如果你还有问题,请给我一个喊叫 感谢

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");

答案 2 :(得分:0)

好的,你的应用程序是静态的。它没有在线托管。你的应用程序没有对服务器进行任何ajax,jquery或json调用。该应用程序没有对远程服务器进行任何数据库调用。如果您的应用没有远程调用上述任何内容,则无需担心跨域。

好的,我问你另一个问题?当您点击应用中的网址链接时,它会带您到达目标网页。发生了什么。