分享

$.getJSON回调函数不执行

 wlq5 2013-12-13

最近做的项目遇到一个跨域请求做验证的问题,为了解决这个跨域问题,愁了老半天,最后发现jQuery提供的一个特别简单的方法,就是用jQuery.getJSON(url, [data], [callback])

jQuery的Api提供一个列子:

$.getJSON("http://api./services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?", function(data){
  $.each(data.items, function(i,item){
    $("<img/>").attr("src", item.media.m).appendTo("#images");
    if ( i == 3 ) return false;
  });
});

说明一下注意事项:

1、请求地址一定要有 jsoncallback=? ,例如我请求 百度,传一个参数userName=123,应该这样写:http://www.baidu.com?userName=123&jsoncallback=? ,如果我不传参数userName,应该这样写:http://www.baidu.com?jsoncallback=?

2、第二个参数一定要是json格式键/值对的格式。例:{ "email": ""}

3、回调函数,您请求的地址需要返回数据,返回的数据必须是严格的json格式的数据,还需要用 参数jsoncallback加小括号包裹jsoncallback(json格式的数据),否则就会出现回调函数不会执行的问题。

下面有有两个页面参考:

a.jsp:

<html>
  <head>
    <title>TEST</title>
    <script type="text/javascript" src="./jquery-1.6.2.min.js"></script>

    <script type="text/javascript">
       jQuery(function(){
            $.getJSON("http://www./ids/cn/b.jsp?email=123@163.com&callback=?", function(data){
                 alert(data.resultMsg);  
            });

      });
    </script>
  </head>
  <body>
  </body>
</html>

 

b.jsp

 

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="/error.jsp" %>

<%
    response.setContentType("application/json");//这个一定要加
    String callback =    request.getParameter("callback");
     int status = 0;
      String remsg = "{\"resultMsg\":\""+status+"\"}";
%>
<%=callback+"("+remsg+")"%>最近做的项目遇到一个跨域请求做验证的问题,为了解决这个跨域问题,愁了老半天,最后发现jQuery提供的一个特别简单的方法,就是用jQuery.getJSON(url, [data], [callback])

jQuery的Api提供一个列子:

$.getJSON("http://api./services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?", function(data){
  $.each(data.items, function(i,item){
    $("<img/>").attr("src", item.media.m).appendTo("#images");
    if ( i == 3 ) return false;
  });
});

说明一下注意事项:

1、请求地址一定要有 jsoncallback=? ,例如我请求 百度,传一个参数userName=123,应该这样写:http://www.baidu.com?userName=123&jsoncallback=? ,如果我不传参数userName,应该这样写:http://www.baidu.com?jsoncallback=?

2、第二个参数一定要是json格式键/值对的格式。例:{ "email": ""}

3、回调函数,您请求的地址需要返回数据,返回的数据必须是严格的json格式的数据,还需要用 参数jsoncallback加小括号包裹jsoncallback(json格式的数据),否则就会出现回调函数不会执行的问题。

下面有有两个页面参考:

a.jsp:

<html>
  <head>
    <title>TEST</title>
    <script type="text/javascript" src="./jquery-1.6.2.min.js"></script>

    <script type="text/javascript">
       jQuery(function(){
            $.getJSON("http://www./ids/cn/b.jsp?email=123@163.com&callback=?", function(data){
                 alert(data.resultMsg);  
            });

      });
    </script>
  </head>
  <body>
  </body>
</html>

 

b.jsp

 

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="/error.jsp" %>

<%
    response.setContentType("application/json");//这个一定要加
    String callback =    request.getParameter("callback");
     int status = 0;
      String remsg = "{\"resultMsg\":\""+status+"\"}";
%>
<%=callback+"("+remsg+")"%>最近做的项目遇到一个跨域请求做验证的问题,为了解决这个跨域问题,愁了老半天,最后发现jQuery提供的一个特别简单的方法,就是用jQuery.getJSON(url, [data], [callback])

jQuery的Api提供一个列子:

$.getJSON("http://api./services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?", function(data){
  $.each(data.items, function(i,item){
    $("<img/>").attr("src", item.media.m).appendTo("#images");
    if ( i == 3 ) return false;
  });
});

说明一下注意事项:

1、请求地址一定要有 jsoncallback=? ,例如我请求 百度,传一个参数userName=123,应该这样写:http://www.baidu.com?userName=123&jsoncallback=? ,如果我不传参数userName,应该这样写:http://www.baidu.com?jsoncallback=?

2、第二个参数一定要是json格式键/值对的格式。例:{ "email": ""}

3、回调函数,您请求的地址需要返回数据,返回的数据必须是严格的json格式的数据,还需要用 参数jsoncallback加小括号包裹jsoncallback(json格式的数据),否则就会出现回调函数不会执行的问题。

下面有有两个页面参考:

a.jsp:

<html>
  <head>
    <title>TEST</title>
    <script type="text/javascript" src="./jquery-1.6.2.min.js"></script>

    <script type="text/javascript">
       jQuery(function(){
            $.getJSON("http://www./ids/cn/b.jsp?email=123@163.com&callback=?", function(data){
                 alert(data.resultMsg);  
            });

      });
    </script>
  </head>
  <body>
  </body>
</html>

 

b.jsp

 

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="/error.jsp" %>

<%
    response.setContentType("application/json");//这个一定要加
    String callback =    request.getParameter("callback");
     int status = 0;
      String remsg = "{\"resultMsg\":\""+status+"\"}";
%>
<%=callback+"("+remsg+")"%>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多