加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2d-js跨域访问问题,cocos2d-js请求网络数据

发布时间:2020-12-14 16:39:28 所属栏目:百科 来源:网络整理
导读:下面是cocos2d-js请求网络数据的代码: var HttpRequest = { /* * 网络请求之GET * url 请求的网络地址 * callback 回调参数 * */ GET:function(url,callback){ var xhr = cc.loader.getXMLHttpRequest(); xhr.open("GET",url,true); xhr.onreadystatechange

下面是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' header is present on the requested resource. Origin 'http://localhost:63342' is therefore not allowed access.

这是因为浏览器不能跨域访问,我们在服务端找到这个要请求的文件:设置一下header

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

这样,就成功返回了数据?但是!!!,没有成功,晕,原因是这个php调用header之前不能有任何输出,必须改编码为UTF-8 无rom格式,弄了一晚上卡在这个点上!!!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读