我正在尝试使用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 :(得分:0)
在ajax请求中,尝试将属性'jsonp'设置为false( jsonp:false )。
基本上,JQuery生成一个自动函数回调名称,如下所示:JQuery1223 ... 34。
在您的情况下,您已经明确设置了jsonpCallback函数名称。所以你必须将jsonp attribut置于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');
}
});