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)。

posted @ 2016-01-26 17:49  七颗牙  阅读(222)  评论(0编辑  收藏  举报