cordova ajax请求本地wifi在笔记本电脑上工作但不在我的设备上

时间:2017-10-17 00:01:10

标签: ajax rest cordova networking

我正在从我的笔记本电脑发送一个get ajax请求到我在无线网络中的api休息(没有互联网)。

它运行良好但是当我尝试从我的手机设备执行相同操作时,我的ajax请求中有一个网络错误捕获。

我正在使用Android设备进行测试。 我正在使用visual studio 2017 com和cordova 6.3.1开发 我试图在config.xml中添加我的URI,我也有'*'属性。

你可以帮帮我吗? 这是我的代码:

(function () {
"use strict";

document.addEventListener('deviceready', onDeviceReady.bind(this), false);

$('#testAPI').click(function () {
    alert('test4');
    $.ajax
        ({
            type: "GET",
            url: "http://192.168.0.1/api/rest/v1/value",
            dataType: 'json',
            async: false,
            //data: '{"username": "user", "password" : "password"}',
            success: function (data) {
                alert('test3');
                alert(data.value);
                //$('#Temperature').html(parseFloat(data.value).toPrecision(4).toString() + ' °C');
                $('#testAPI').text(data.value);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert("Status: " + textStatus); alert("Error: " + errorThrown);
            },
            beforeSend: function (xhr) {
                alert(username);
                alert(password);
                xhr.setRequestHeader('Authorization', 'Basic ' + btoa(username + ":" + password));
            }
        });
});


function onDeviceReady() {
    // Gérer les événements de suspension et de reprise Cordova
    document.addEventListener('pause', onPause.bind(this), false);
    document.addEventListener('resume', onResume.bind(this), false);

    // TODO: Cordova a été chargé. Effectuez l'initialisation qui nécessite Cordova ici.
    //var parentElement = document.getElementById('deviceready');
    //var listeningElement = parentElement.querySelector('.listening');
    //var receivedElement = parentElement.querySelector('.received');
    //listeningElement.setAttribute('style', 'display:none;');
    //receivedElement.setAttribute('style', 'display:block;');
};

function onPause() {
    // TODO: cette application a été suspendue. Enregistrez l'état de l'application ici.
};

function onResume() {
    // TODO: cette application a été réactivée. Restaurez l'état de l'application ici.
};
})();

我使用白名单插件,这是我的config.xml的一部分:

<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
<allow-intent href="market:*" />
<access origin="*" />
<allow-navigation href="*" />
</platform>

1 个答案:

答案 0 :(得分:0)

好的那就是内容安全策略的问题。 感谢