您的位置:首页 > Web前端 > AngularJS

AngularJs---JSONP跨域访问数据传输

2017-11-15 11:06 483 查看
Jquery中jsonp的使用

 

myUrl = "http://localhost:8090/api/test";

$.ajax({

  type:"GET",

  url:myUrl,

  dataType:"jsonp",

  jsonp:"callback",

  jsonpCallback:"jsonpCallback",

  success:function(data){

    alert(data.msg);

  }

});

function jsonpCallback(data){

  alert(data);

}

1.jsonp只能使用get请求,解决同源问题,返回javascript代码,因为请求javascript文件是没有同源问题的。

2.当请求数据类型为jsonp时,会将callback=jsonpCallback加在url上,http://localhost:8090/api/testcallback=jsonpCallback

3.前台javascript中定义jsonpCallback函数,此函数必须定义在window下,也就是全局的函数,否则找不到。

4.后台获取请求的callback参数值jsonpCallback,返回字符串"jsonpCallback(result)",result为返回结果。

5.请求返回的是script tag,首先会调用jsonpCallback函数,不管是否找到该函数,都会调用success函数。

6.如果没有定义jsonp和jsonpCallback,jsonp默认为"callback",jsonpCallback会是Jquery自动生成的函数名。

复制代码

 

angularJS中jsonp的使用

myUrl = "http://localhost:8090/api/test?callback=JSON_CALLBACK";

$http.jsonp(myUrl).success(

  function(data){

    alert(data);

  }

);

1.angularJS中使用$http.jsonp函数

2.指定callback和回调函数名,函数名为JSON_CALLBACK时,会调用success回调函数,JSON_CALLBACK必须全为大写。

3.也可以指定其它回调函数,但必须是定义在window下的全局函数。

4.url中必须加上callback

5.当callback为JSON_CALLBACK时,只会调用success,即使window中有JSON_CALLBACK函数,也不会调用该函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: