jQuery jsonp跨域请求

  作者:会飞的

jQuery jsonp跨域请求:// 成功回调var h =$.ajax({ type: "GET", url: "a.xinge360.com", data : "test=1", dataType: "jsonp", success: function(msg){ console.log(msg) if(msg == 1){ window.location.reload(tr

jQuery jsonp跨域请求:

// 成功回调

var h =$.ajax({

   type: "GET",

   url: "a.xinge360.com",

   data : "test=1",

   dataType: "jsonp",

   success: function(msg){

       console.log(msg)

       if(msg == 1){

           window.location.reload(true);

       }

   },

   error: function(error) {

       console.log(error)

   }


php代码片段:

$callback=$_GET['callback'];

printf("%s(%s);", $callback, 1);//$arr为返回数据,jQuery jsonp跨域请求,


Jsonp原理:

  • 1,首先在客户端注册一个callback (如:'jsoncallback'), 然后把callback的名字传给服务器。

  • 此时,服务器先生成 json 数据。

  • 2,然后以 javascript 语法的方式,生成一个function , function 名字就是传递上来的参数 'jsoncallback'的值  .

  • 3,最后将 json 数据直接以入参的方式,放置到 function 中,这样就生成了一段 js 语法的文档,返回给客户端。

  • 4,客户端浏览器,解析script标签,并执行返回的 javascript 文档,此时javascript文档数据,作为参数,

  • 传入到了客户端预先定义好的 callback 函数。


有用  |  无用

猜你喜欢