jsonp跨域问题记录
这段时间用H5做移动app开发,遇到不少之前做web的时候不曾遇到的问题,记录一下,共勉~~
首先说一个:js跨域取数的问题
描述: 之前做web都是通过后台获取数据,没考虑过跨域的问题。这次用h5写的app通过ajax去
公司现有的web系统里拿数据,怎么也拿不到。网上查原因发现需要跨域。网上相关信息不少,但是
跟着人家的描述就是调不同,n次尝试后终于OK,记录下:
什么是jsonp及jsonp与json的区别网上信息很多这里就不做详细介绍了。
一.前台代码:
1.在jsp/html页面加入一个变量:
<script type="text/javascript"> var jsonpCallback = function (data) { } </script>
p: 此处的jsonpCallback变量要与后台接口返回的变量一致
2.在controller调用:
url = '系统访问地址?要传的参数&jsonpCallback=JSON_CALLBACK'; $.ajax({ type : "get", async : true, url : url, dataType : "jsonp", jsonp : "callback", jsonpCallback : "jsonpCallback", success : function(data) { alert("成功!"); }, error : function(data) { alert("失败!"); } });
===============前台代码结束==============
2.后台接口:
采用jsonp请求时,返回的结果也应该是jsonp格式的。其格式如下:
jsonpCallback({"code":"0","errorMsg":null,"successResult":{"tokenkey":"b70979f623cc441fb0948d5563acda03"}})
即:返回的变量名(json)。