一尘不染

JavaScript Access-Control-Allow-Origin不允许起源

javascript

我正在Ajax.request使用Sencha Touch 2应用程序(包装在PhoneGap中)到远程PHP服务器。

服务器的响应如下:

XMLHttpRequest无法加载http://nqatalog.negroesquisso.pt/login.php。原产地http://localhost:8888不被访问控制允许来源允许的。

我该如何解决这个问题?


阅读 294

收藏
2020-04-23

共1个答案

一尘不染

如果您控制响应服务器,最简单的方法是为以下项添加响应标头:

Access-Control-Allow-Origin: *

这将允许跨域Ajax。在PHP中,您将需要像这样修改响应:

<?php header('Access-Control-Allow-Origin: *'); ?>

您可以将Header set Access-Control-Allow-Origin *设置放入Apache配置或htaccess文件中。

应当指出,这有效地禁用了CORS保护,这 很可能使您的用户受到攻击
。如果您不知道自己是否特别需要使用通配符,则不要使用它,而应该将特定域列入白名单:

<?php header('Access-Control-Allow-Origin: http://example.com') ?>
2020-04-23