2016-05-26 5 views
1

Ich baue eine Cross-Plattform-Mobile-Anwendung mit Intel XDK und ich brauche Daten von PHP auf dem Server in mein Javascript laufen ...... das ist mein Js-CodeWeitergabe von Daten von PHP zu Javascript für Hybrid-Anwendungen

var meRequest; 
meRequest = new XMLHttpRequest(); 
meRequest.onreadystatechange=function() 
{ 
    if(meRequest.readyState==4) 
    { 
     alert("request sent"); 
     alert((meRequest.responseText)); 
    } 
} 

meRequest.open("GET", "http://127.0.0.1/my_queries_1.php",true); 
meRequest.send(); 

und das ist mein pHP-Code:

<?php 
echo json_encode(500); 
exit; 
?> 

dies funktioniert, wenn ich sie beide von localhost laufen, dh beide Skripte auf dem Server sind, aber ich kann das nicht, da für die App verwenden, die js muss in die mobile applikation eingebettet werden und das php-script auf dem server bleiben ... aber wenn ich t laufen lasse Die JavaScript-Datei außerhalb des lokalen Hosts erhält einen null responseText. wie gehe ich bitte darüber ??

Antwort

0

So müssen Sie Cross-Domain-Anfrage und ich denke, so etwas wie dies sollte für Sie arbeiten:

// (1) 
var XHR = ("onload" in new XMLHttpRequest()) ? XMLHttpRequest : XDomainRequest; 

var xhr = new XHR(); 

// (2) cross domain request 
xhr.open('GET', 'http://anywhere.com/request', true); 

xhr.onload = function() { 
    alert(this.responseText); 
} 

xhr.onerror = function() { 
    alert('error ' + this.status); 
} 

xhr.send(); 

Server-Seite sollte auch solche Anfragen über Erzeugung von speziellen Antwort-Header erlauben:

HTTP/1.1 200 OK 
Content-Type:text/html; charset=UTF-8 
Access-Control-Allow-Origin: http://example.com 
+0

hallo .. Ich erhalte einen Fehler 0 Warnung ... Könnten Sie mehr Licht auf die Serverseite werfen ... die dritte Zeile Ihres Codes, ich nehme an, es zeigt an, welche Domäne erlaubt sein sollte, domänenübergreifende Anfragen zu stellen ... könnte das durch '%' ersetzt werden, so dass es Zugriff von allen Geräten ermöglicht? .. Danke – lukman

+0

A r Die umgestellte Ressource kann einen Zugriffssteuerungs-Zulassen-Ursprung-Header mit der folgenden Syntax haben: Access-Control-Allow-Origin: | * Der Ursprungsparameter gibt einen URI an, der auf die Ressource zugreifen darf. Der Browser muss dies erzwingen. Bei Anfragen ohne Anmeldeinformationen kann der Server "*" als Platzhalter angeben, sodass jeder Ursprung auf die Ressource zugreifen kann. –

+0

Weitere Informationen finden Sie hier: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Access-Control-Allow-Origin –

Verwandte Themen