jquery中JSONP的实现过程:

jquery中的jsonp也是通过script标签的src属性来实现跨域数据访问的,只不过,jquery采用的是动态创建和移除script标签的方式,来发起JSONP数据请求。

在发起JSONP请求的时候,动态向<header>中append一个script标签;

在JSONP请求成功以后,动态地移除刚刚append进去的script标签。

js前端代码如下:

$.ajax({
    url: 'http://www.rovk.cn/api/jsonp?name=zs&age=20' ,
    type: "GET" ,        
    dataType: 'jsonp' ,
    jsonp: 'callback', //自定义参数的名称  一般让它默认为callback 不会做修改
    jsonpCallback: 'showData',   //自定义回调函数的名称
    success: function (res) {
        console.log(res);
    }
});
php后端代码如下:
$login_query = array(
    "username" => "admin" ,
    "token" => "123"
);

//JSONP的返回必须加 $_GET["callback"]
$back = $_GET["callback"].'('.json_encode($login_query).')';
echo $back;

默认情况下,使用Jquery发起JSONP请求,会自动携带一个callback=jQueryxxx的参数,jQueryxxx是随机生成的一个回调函数的名称。