我正在Sencha Touch 2 应用程序(包装在PhoneGapAjax.request中)中创建远程 PHP 服务器。
Ajax.request
来自服务器的响应如下:
XMLHttpRequest 无法加载http://nqatalog.negroesquisso.pt/login.php。Access- Control-Allow- Originhttp://localhost:8888不允许 Origin。
http://localhost:8888
我该如何解决这个问题?
不久前我写了一篇关于这个问题的文章,Cross Domain AJAX。
如果您可以控制响应服务器,则处理此问题的最简单方法是为以下内容添加响应标头:
Access-Control-Allow-Origin: *
这将允许跨域Ajax。在 PHP 中,您需要像这样修改响应:
<?php header('Access-Control-Allow-Origin: *'); ?>
您可以将Header set Access-Control-Allow-Origin *设置放在Apache配置或 htaccess 文件中。
Header set Access-Control-Allow-Origin *
应该注意的是,这有效地禁用了 CORS 保护,这 很可能使您的用户受到攻击 。如果您不知道您特别需要使用通配符,则不应使用它,而应将您的特定域列入白名单:
<?php header('Access-Control-Allow-Origin: http://example.com') ?>