我在做一个Ajax。请求一个远程PHP服务器在Sencha Touch 2应用程序(包装在PhoneGap)。

服务器的响应如下:

XMLHttpRequest无法加载http://nqatalog.negroesquisso.pt/login.php。Access-Control-Allow-Origin不允许Origin http://localhost:8888。

我该如何解决这个问题?


当前回答

我们也有同样的问题,phonegap应用程序在chrome测试。 在打开Chrome之前,我们每天使用下面的批处理文件。 记住在运行这个之前,你需要从任务管理器中清除所有的chrome实例,或者你可以选择chrome不运行在后台。

BATCH:(使用cmd)

cd D:\Program Files (x86)\Google\Chrome\Application\chrome.exe --disable-web-security

其他回答

如果你有ASP。Net / asp。NET MVC应用程序,您可以通过Web包含此头文件。配置文件:

<system.webServer>
  ...

    <httpProtocol>
        <customHeaders>
            <!-- Enable Cross Domain AJAX calls -->
            <remove name="Access-Control-Allow-Origin" />
            <add name="Access-Control-Allow-Origin" value="*" />
        </customHeaders>
    </httpProtocol>
</system.webServer>

在使用各种api时,我遇到过几次这种情况。通常一个快速的解决方法是在字符串的末尾添加“&callback=?”有时&号必须是字符代码,有时是“?””:“回调= ?”(见预测。jQuery的API使用方法

如果你在Angular.js中得到这个,那么确保你像这样转义你的端口号:

var Project = $resource(
    'http://localhost\\:5648/api/...', {'a':'b'}, {
        update: { method: 'PUT' }
    }
);

更多信息请看这里。

我们也有同样的问题,phonegap应用程序在chrome测试。 在打开Chrome之前,我们每天使用下面的批处理文件。 记住在运行这个之前,你需要从任务管理器中清除所有的chrome实例,或者你可以选择chrome不运行在后台。

BATCH:(使用cmd)

cd D:\Program Files (x86)\Google\Chrome\Application\chrome.exe --disable-web-security

露比·辛纳屈

response['Access-Control-Allow-Origin'] = '*' 

对每个人来说

response['Access-Control-Allow-Origin'] = 'http://yourdomain.name'