jsonp跨域

为什么要 jsonp 跨域就不多讲了。  域名、端口、协议。三样有一处不同就需要跨域
 
我使用的是 jquery 的ajax
$.ajax({
      type:'get',
      dataType:'jsonp',
      jsonpCallback:'getMessage',
      url:'url',
         success:function(data){
             console.log(data);
           }
      })

这和很多网上的 jsonp 用法一样啊。  以前调用过但是一直报错。其实这样是能够请求到后台。后台也返回给你了。 但是就是请求不到。以往后台都是返回的json格式的。 

如:

 1 {'name':'123',age:1} 

但是 dataType 的格式是 jsonp 格式。后台返回格式是Json,ajax当然解析不出来。
 
jsonp是通过链接的参数来返回数据的。 ajax多了一个 jsonpCallback 的属性。 在返回数据的url参数后面中有 jsonpCallback:getMessage。
 
说了这么多后台应该返回什么数据。 
 
应该返回   getMessage(data) 。  这个data可以是任何类型的。(对象、字符串、数值、数值...);
 
这么看大家就知道这是什么了。回调函数  啊。
 
ajax相当于封装了一个函数。
 
getMessage(data){   //这个函数名对应  ajax的  jsonpCallback:'getMessage'

}

  

后台返回函数名调用这个函数。 ajax就能解析data数据了。
 
 
注意点:
 
后台一定要返回   jsonpCallback:getMessage 对应的函数名。
 
假设:
 
jsonpCallback:a,  那么后台返回的数据是 a(值)。

 

posted @ 2018-03-09 13:47  小则又沐风  阅读(250)  评论(0编辑  收藏  举报