Heim > Backend-Entwicklung > PHP-Tutorial > Problem mit dem domänenübergreifenden Zugriff von cocos2d-js, cocos2d-js fordert Netzwerkdaten an

Problem mit dem domänenübergreifenden Zugriff von cocos2d-js, cocos2d-js fordert Netzwerkdaten an

WBOY
Freigeben: 2016-07-29 09:13:10
Original
1480 Leute haben es durchsucht

Das Folgende ist der Code für cocos2d-js zum Anfordern von Netzwerkdaten:

var HttpRequest = {
    /*
     * 网络请求之GET
     * url 请求的网络地址
     * callback 回调参数
     * */
    GET:function(url,callback){
        var xhr = cc.loader.getXMLHttpRequest();
        xhr.open("GET",url,true);
        xhr.onreadystatechange = function () {
            if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status <= 207)) {
                err = false;
            }else{
                err = true;
            }
            var response = xhr.responseText;
            callback(err,response);
        };
        xhr.send();
    },
    /*
     * 网络请求之POST
     * url 请求的网络地址
     * params  请求参数  ("id=1&id=2&id=3")
     * callback 回调参数
     * */
    POST:function(url,params,callback){
        var nums = arguments.length
        if(nums == 2){
            callback = arguments[1];
            params = "";
        }
        var xhr = cc.loader.getXMLHttpRequest();
        xhr.open("POST", url);
        xhr.setRequestHeader("Content-Type","text/plain;charset=UTF-8");
        xhr.onreadystatechange = function () {
            if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status <= 207)) {
                err = false;
            }else{
                err = true;
            }
            var response = xhr.responseText;
            callback(err,response);
        };
        xhr.send(params);
    }
}

//EXMAPLE
/*
 HttpRequest.POST("http://127.0.0.1:3000/test","id=1&ids=2", function(err,data){
 if(err){
 //错误处理
 }else{
 cc.log(data);
 }
 })
 */
Nach dem Login kopieren

Das Anforderungsnetzwerk wird jedoch angezeigt: Kein Header „Access-Control-Allow-Origin“. ist auf der angeforderten Ressource vorhanden. Der Zugriff auf Origin „http://localhost:63342“ ist daher nicht gestattet.

Das liegt daran, dass der Browser nicht domänenübergreifend zugreifen kann, wir finden dies auf Der Server fordert Datei an: Header festlegen

<?php 
header("Access-Control-Allow-Origin : *");
echo "I Love you"
?>
Nach dem Login kopieren

Auf diese Weise werden die Daten erfolgreich zurückgegeben? Aber! ! ! , fehlgeschlagen, schwindelig, der Grund ist, dass dieses PHP vor dem Aufruf des Headers keine Ausgabe haben kann und die Codierung auf UTF-8 ohne ROM-Format geändert werden muss. Ich bin die ganze Nacht an diesem Punkt hängengeblieben! ! !

Das Obige stellt das domänenübergreifende Zugriffsproblem von cocos2d-js vor, einschließlich Aspekten des Inhalts. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage