簡體   English   中英

無法通過 CORS 請求錯誤與 Phonegap App 中的服務器連接

[英]Can't connect with server in Phonegap App by CORS request error

我已經創建了我的應用程序。 當我在桌面上測試或在 PhoneGap IDE 上運行時,它運行正常並與服務器連接,但是當我構建我的 apk 並在 Android 上運行它時,請求失敗並啟動此消息:

請求的資源上不存在“Access-Control-Allow-Origin”標頭。 因此,不允許訪問 Origin ' http://localhost '。

這是我的 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);
    },

我這樣稱呼它:

app.sendPost(url,data,function(res){
    some code.....
    }); // end app.sendPost()

我在 htaccess 文件中包含了這一行:

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

但是服務器不允許來自Phonegap(本地主機)的請求

你應該看看這篇文章:

在 htaccess 中啟用 cors

使用 PHP 設置標頭應該可以解決問題(如果您使用的是 PHP 服務器端)

解決了!! 問題是我必須在 config.xml phonegap 文件中包含一個白名單:

正如我之前解釋的那樣,問題僅在我運行構建項目 phonegap apk 時發生(在開發模式下運行正常)所以我只是在 config.xml 文件中包含了一個白名單,它可以工作。

在你的 config.xml 文件中加入這一行:´´´ ´´´

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM