Access-Control-Allow-Origin跨域请求php+js

项目遇到这个问题,网上解释还是很多的,但根据自己实际需求能正确用到,是不可能的。
整理一下自己目前遇到的:
情况:本地(127.0.0.1)+内网(192.168.0.*) ajxa请求php接口。
刚开始$post(){}方式请求,报错Access-Control-Allow-Origin

正确处理:
服务器文件(PHP)添加

1
2
    // 指定允许其他域名访问  
    header('Access-Control-Allow-Origin:*');//*代表任意

额外补充header知识:

1
2
3
4
5
6
7
8
9
    header('Content-Type: text/html; charset=UTF-8');
    // 指定允许其他域名访问  
    header('Access-Control-Allow-Origin:*');  
    // 响应类型  
    header('Access-Control-Allow-Methods:POST');  
    // 响应头设置  
    header('Access-Control-Allow-Headers:x-requested-with,content-type');

    返回数据 echo json_encode();

根据度娘修改成ajxa请求:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$.ajax({
    url:"http://192.168.0.*/index.php?app=*****&mod=*****&act=*****&total="+total,
    type:'GET', //或许也可以post请求,自己没试。
    dataType:'text', //试过类型为json,jsonp,但都会出现error为200的错。
    success: function(data){
         var dataObj=eval("("+data+")");//吧json数据对象化
         for(var i=0;i<total;i++){
             $("#weibo").append("<div class='time'>"+dataObj[i]['uname']</div>");
         }
    },
    error: function (XMLHttpRequest, textStatus, errorThrown) {
        alert("
请求数据异常,状态码:" + XMLHttpRequest.status);
    }
    });

相关文章推荐:
http://blog.csdn.net/fdipzone/article/details/46390573/
http://www.oicqzone.com/pc/2014083019610.html
http://blog.csdn.net/relucent/article/details/45716325

Posted in: PHPTagged:
ˆ Back To Top