2013-03-02 64 views
1

我想使用JSONP在访问数据:为什么不调用JSONP回调函数?

https://github.com/users/jbranchaud/contributions_calendar_data

然而,没有我曾尝试都导致无论是在回调或成功功能的解决方案得到调用。当我使用Chrome/Firefox检测工具时,我可以查看脚本并看到响应为200 Ok,并且响应文本包含上述URL中的数据。尽管如此,在任何时候,回调函数和成功函数都不会被调用。关于如何使这个工作的任何想法?

这是我最近在得到尝试此运行:

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
    <script type="text/javascript"> 
     function parseResults(results) { 
      console.log('hello function callback.'); 
     } 

     $.ajax({ 
      url: 'https://github.com/users/jbranchaud/contributions_calendar_data', 
      type: 'post', 
      dataType: 'jsonp', 
      jsonp: true, 
      jsonpCallback: 'parseResults', 
      success: function(data, textStatus, jqXHR) { 
       console.log('success_function'); 
       console.log(data); 
      }, 
      error: function() { 
       console.log('error with jsonp request'); 
      } 
     }); 
    </script> 

当我加载网页,我看到在控制台“与JSONP请求错误”,所以有错误与AJAX请求。为什么这个请求没有成功的想法?

+0

有任何错误控制台,可以添加一个错误回调,并检查其是否获取调用parseResults – 2013-03-02 05:02:16

+0

是否获取调用 – 2013-03-02 05:04:20

+0

有在控制台中没有错误,但是当我向ajax请求添加错误回调时,它打印了我的错误消息(请参阅更新的代码) – jbranchaud 2013-03-02 05:05:35

回答

0

在ajax请求中,尝试将属性'jsonp'设置为false(jsonp:false)。

基本上,JQuery生成一个自动函数回调名称,如下所示:JQuery1223 ... 34。

就你而言,你已经明确地设置了jsonpCallback函数名。所以你必须将jsonp归为false。 你的代码应该是这样的:

$.ajax({ 
     url: 'https://github.com/users/jbranchaud/contributions_calendar_data', 
     type: 'post', 
     dataType: 'jsonp', 
     jsonp: false, 
     jsonpCallback: 'parseResults', 
     success: function(data, textStatus, jqXHR) { 
      console.log('success_function'); 
      console.log(data); 
     }, 
     error: function() { 
      console.log('error with jsonp request'); 
     } 
    });