jsonp 跨域请求数据基本思路

jsonp实现跨域数据请求的基本思路。

客户端:

$.ajax({
     type: "get",
     async: false,
     url: "http://www.xx.com/index.php?m=Index&c=Icenew&a=getNew",
     dataType: "jsonp",
     jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)
     jsonpCallback:"success_jsonpCallback",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据
     success: function(data){
        // alert(data);
        var strF = "<li><a href='"+data[0]['aid']+"'>"+data[0]['title']+"</a></li><li><a href='"+data[1]['aid']+"'>"+data[1]['title']+"</a></li>";
        $('.news_con ul').html(strF);
     },
     error: function(){
        console.log('fail');
     }
 });

服务端:

class IcenewController extends CommonController{
    public function getNew(){
        $arcs = M('content')->where(array('cid'=>61))->field('title,aid')->limit(6)->select();
        echo $_REQUEST["callback"]."(".json_encode($arcs).")";
    }
}

Tags: PHP

已有 2 条评论

  1. 可采用客户端
    header("Access-Control-Allow-Origin: *");
    同样可解决跨域

  2. 跨域提交

    setInterval(function(){
    var data = window.location.host;
    $.getJSON("http://127.0.0.1/qshx/Home/Index/log.html?callback=?",{'data':data},function(json){
    var msg = '';
    if(json){
    console.log('success');
    }else{
    console.log('error');
    }
    });
    },3600000)

添加新评论