> 백엔드 개발 > PHP 튜토리얼 > cocos2d-js 도메인 간 액세스 문제, cocos2d-js가 네트워크 데이터를 요청함

cocos2d-js 도메인 간 액세스 문제, cocos2d-js가 네트워크 데이터를 요청함

WBOY
풀어 주다: 2016-07-29 09:13:10
원래의
1481명이 탐색했습니다.

다음은 cocos2d-js가 네트워크 데이터를 요청하는 코드입니다:

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);
 }
 })
 */
로그인 후 복사

그러나 요청 네트워크가 나타납니다: No 'Access-Control-Allow-Origin' 헤더 요청된 리소스에 존재합니다. 따라서 Origin 'http://localhost:63342'에 대한 액세스가 허용되지 않습니다.

브라우저가 도메인 간 액세스를 할 수 없기 때문입니다. 파일을 요청할 서버: 헤더 설정

<?php 
header("Access-Control-Allow-Origin : *");
echo "I Love you"
?>
로그인 후 복사

이렇게 하면 데이터가 성공적으로 반환됩니까? 하지만! ! ! , 실패, 현기증, 이유는 이 PHP는 헤더를 호출하기 전에는 어떤 출력도 가질 수 없고 인코딩은 ROM 형식 없이 UTF-8로 변경되어야 하기 때문입니다. 이 시점에서 밤새도록 꼼짝 못하게 되었습니다! ! !

위 내용은 cocos2d-js의 도메인 간 액세스 문제를 소개합니다. Cocos2d-js는 콘텐츠를 포함한 네트워크 데이터를 요청하므로 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿