Heim  >  Fragen und Antworten  >  Hauptteil

javascript - ajax jsonp我写的方法怎么调用不了? 为什么用$.getJSON方法能生成数据?

http://jsbin.com/curofericu/e...

//   $.getJSON("http://www.runoob.com/try/ajax/jsonp.php?jsoncallback=?", function(data) {
    
//     var html = '<ul>';
//     for(var i = 0; i < data.length; i++)
//     {
//         html += '<li>' + data[i] + '</li>';
//     }
//     html += '</ul>';
    
//     $('#pCustomers').html(html); 
// });

我把上面的方法转成ajax的方法

$.ajax({
  method: "post", //get/post试过了 
  async: false,
  url: "http://www.runoob.com/try/ajax/jsonp.php",
  dataType: "jsonp",
  jsonp: "jsoncallback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)
  jsonpCallback:"?",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据
  success: function(data){
  var html = '<ul>';
  for(var i = 0; i < data.length; i++)
  {
  html += '<li>' + data[i] + '</li>';
}
       html += '</ul>';

       $('#pCustomers').html(html); 
},
  error: function(){
    alert('fail');
  }
});

为什么会进入error啊
好奇怪。
如何正确使用ajax jsonp里面的方法 。

案例http://www.runoob.com/json/js...

ringa_leeringa_lee2770 Tage vor469

Antworte allen(2)Ich werde antworten

  • 大家讲道理

    大家讲道理2017-04-11 13:15:43

    jsonpCallback:"?",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据

    API中并没有这么说过。去掉这个就行

    Antwort
    0
  • 阿神

    阿神2017-04-11 13:15:43

    注掉jsonpCallback, 问号只在参数里用,启用该参数的话,传的是你定义的方法名, 不要设置用系统的即可
    另 jsonp 只可能是GET, 没有POST(当然, 该模式下其实是会忽略method和async设置的)

    $.ajax({
      method: "post", //get/post试过了 
      async: false,
      url: "http://www.runoob.com/try/ajax/jsonp.php",
      dataType: "jsonp",
      jsonp: "jsoncallback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)
      //jsonpCallback:"?",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据
      success: function(json){
      var html = '<ul>';
      for(var i = 0; i < data.length; i++)
      {
      html += '<li>' + data[i] + '</li>';
    }
           html += '</ul>';
    
           $('#pCustomers').html(html); 
    },
      error: function(){
        alert('fail');
      }
    });

    Antwort
    0
  • StornierenAntwort