<script type="text/javascript" src="js/jquery-1.8.0.min.js"></script>
      <script type="text/javascript">
      $(document).ready(function(){ 
      alert(123);
        $.ajax({
             type: "post",
             async: false,
             url: "http://xxx.xxx.xxx.xxx:8080/charge/wap-charge-input.action",
             dataType: "jsonp",
             jsonp: "callback",
             jsonpCallback:"flightHandler",
             success: function(json){
                 alert(json);
             },
             error: function(){
                 alert('fail');
             }
         });
     });
     </script>执行结果:alert(fail);
它怎么执行的就是error呢,谁知道什么原因么?怎么解决,谢谢大家。jsonpjQuery AjaxJSON函数

解决方案 »

  1.   

    type:'get'好像跨域的不可以post吧(没验证过)
      

  2.   

    那你把jquery的报错信息看下撒。。前台后台都调试下 看看哪里出的问题
      

  3.   

    url: "http://xxx.xxx.xxx.xxx:8080/charge/wap-charge-input.action",确认你这个地址允许你jsonp操作。。?jsonpCallback:"flightHandler",指定了回调函数名称,你自己注册过这个函数没有
      

  4.   

    flightHandler 这个回调方法在哪里?回来了找不到回调函数了吧。
      

  5.   

    url: "http://xxx.xxx.xxx.xxx:8080/charge/wap-charge-input.action",这个路径容许的,后台已经返回了json数据的。
    jsonpCallback:"flightHandler" 如果没有flightHandler函数,jquery会自己执行次函数的。
      

  6.   


    在后面写一个flightHandler也不行。
      

  7.   

    url: "http://xxx.xxx.xxx.xxx:8080/charge/wap-charge-input.action"不是返回json数据就行的,要返回  jquery注册的回调函数名(json数据)这种数据才行,而不是返回  json数据,楼主看下jsonp原理。。
      

  8.   


    嗯,谢谢,解决了,原因返回json的数据有问题,
    jquery在回调flightHandler函数接受到的json数据应该如下:
    flightHandler({"account":"XX","passed":"true","error":"null"})  
    而我返回的json的数据是:flightHandler{"account":"XX","passed":"true","error":"null"} ,jquery执行flightHandler函数时没有找到该函数,所以报error。
    谢谢大家。