2017-10-17 6 views
0

J'envoie une requête get ajax de mon ordinateur portable à mon api reste dans le réseau wifi (sans internet).cordova ajax demande locale wifi fonctionne dans un ordinateur portable mais pas sur mon appareil

Cela fonctionne bien mais quand j'essaye de faire la même chose de mon appareil de téléphone, j'ai une erreur de réseau attrapez dans ma demande d'ajax.

Je suis en train de tester avec un appareil Android. Je développe avec visual studio 2017 com et cordova 6.3.1 J'ai essayé d'ajouter mon URI dans le fichier config.xml, j'ai aussi l'attribut '*'.

Pouvez-vous m'aider s'il vous plaît? voici mon code:

(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. 
}; 
})(); 

J'utilise des plugins et ici une liste blanche partie de mon 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> 
+0

Essayez d'installer le plugin de liste blanche. – user5091906

Répondre

0

Ok qui était la politique de sécurité du contenu du problème. Merci