jsonp跨域问题记录

时间:2023-03-08 16:57:10

  这段时间用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)。