Javascript Can';无法通过CORS请求错误连接Phonegap应用程序中的服务器

Javascript Can';无法通过CORS请求错误连接Phonegap应用程序中的服务器,javascript,ajax,.htaccess,xmlhttprequest,phonegap,Javascript,Ajax,.htaccess,Xmlhttprequest,Phonegap,我已经创建了我的应用程序。当我在桌面上测试或在PhoneGap IDE上运行时,它运行正常并与服务器连接,但当我构建apk并在Android上运行时,请求失败并启动此程序: 请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许对源“”进行访问。 这是我的XMLHttpRequest: sendPost: function(url, data, callback){ var loading = document.getElementByI

我已经创建了我的应用程序。当我在桌面上测试或在PhoneGap IDE上运行时,它运行正常并与服务器连接,但当我构建apk并在Android上运行时,请求失败并启动此程序:

请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许对源“”进行访问。

这是我的XMLHttpRequest:

sendPost: function(url, data, callback){

        var loading = document.getElementById('loading');
        loading.innerHTML = '<p></p>';
        loading.classList.add('loading_active');

        var params = '';
        var count = Object.keys(data).length;
        for(var i=0; i<count;i++){
            if(i>0){
            params += '&';
            }
            params += Object.keys(data)[i] + '=' + Object.values(data)[i];
        }

        var xhr = new XMLHttpRequest();
        xhr.open('POST', url, true);
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xhr.onreadystatechange = function () {
            if (xhr.readyState === 4 && xhr.status === 200) {
                var res = JSON.parse(xhr.responseText);
                if(callback){
                    callback(res);
                }
            }
        };
        xhr.send(params);
    },
我已经在htaccess文件中包含了这一行:

Header set Access-Control-Allow-Origin "*"

但是服务器不允许来自Phonegap(本地主机)的请求。

您应该看看这篇文章:


用PHP设置头应该可以做到这一点(如果您使用的是PHP服务器端)

解决了!!问题是我必须在config.xml phonegap文件中包含一个whilte列表:

正如我前面所解释的,这个问题只有在我运行构建项目phonegap apk(在开发模式下运行ok)时才会发生,所以我只是在config.xml文件中包含了一个白名单,它可以正常工作

在config.xml文件中包含以下行: ´´´
你好,我尝试了这个,但是现在我得到了这样一条消息:
Access Control Allow Origin”头包含多个值“null,*”,但只允许一个值。因此,不允许访问源代码“null”。
您可以发布您正在使用的标题函数吗?请确定。我删除htaccess行并在我的PHP文件中包含这段代码:`//Access-Control头在OPTIONS请求过程中接收if($\u-SERVER['REQUEST\u-METHOD']='OPTIONS'){if(isset($\u-SERVER['HTTP\u-Access\u-Control\u-REQUEST\u-METHOD'])头(“访问控制允许方法:GET、POST、PUT、DELETE、OPTIONS”);if(isset($_-SERVER['HTTP\u-ACCESS\u-CONTROL\u-REQUEST\u-HEADERS'])标头(“访问控制允许标头:{$_-SERVER['HTTP\u-ACCESS\u-CONTROL\u-REQUEST\u-HEADERS']}”)}`您能试着用这些行代替您的代码片段吗:标头(“访问控制允许方法:GET、POST、PUT、DELETE、OPTIONS”);标头('ACCESS-CONTROL-Allow-Origin:');同样的内容:(我不知道还能做什么……当我在Phonegap上测试我的项目时,它工作得很好:问题是当我构建应用程序并在手机上测试apk时
Header set Access-Control-Allow-Origin "*"