gpt4 book ai didi

jquery - 尝试访问 stackoverflow api 但出现解析错误

转载 作者:行者123 更新时间:2023-12-01 00:16:16 25 4
gpt4 key购买 nike

在尝试将 stackoverflow api 与 ajax 和 jquery 一起使用时,我无法让它工作。我知道我必须使用jsonp作为数据类型,我一直在阅读执行 jsonp 请求的不同方法,但我仍然无法让它工作。

这是我的ajax请求:

var API_KEY = "XXXXXXXXXXXX";
var URL = "http://api.stackoverflow.com/1.1/";

var _url = URL + 'users?filter=locrizak';

$.ajax({
dataType:'jsonp',
jsonp : false,
jsonpCallback : "onJsonp",
url: _url,
success: function(val) {
console.log('success');
//console.log(val);
},
error: function(val) {
console.log('error');
console.log(arguments);

}
});

function onJsonp() {
console.log(arguments);
};

无论我尝试什么,我总是在 firebug 中得到这个响应:

"parsererror" "onJsonp was not called"

我知道我正在做一些非常愚蠢的事情,因为我在尝试使用 Twitter api 时遇到了同样的问题,但我一辈子都不记得我做了什么才能让它工作。

更新

所以我看了@genesis 的工作演示,并尝试了几次不同的方法,但没有成功。然后我注意到我的 jQuery 版本,并将其切换到他正在使用的版本,它神奇地工作了。

我更改了最新版本 http://code.jquery.com/jquery-1.6.2.min.jshttp://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js

嗯,不知道为什么它会起作用,可能是一个错误,但谁知道也许其他东西发生了变化。

如果有人知道为什么,如果你能解释一下那就太好了。我还意识到 jQuery 自动添加回调,但我无法让它像那样工作。我该怎么做才能让它正常工作,我想你会说“更合适”的方式?

var URL = "http://api.stackoverflow.com/1.1/";
api.get(URL + 'users?filter=locrizak');
api.get = function(url) {
$.ajax({
/*dataType:'jsonp',*/
dataType:'json',
jsonp : false,
url: url + '&jsonp=api.onJsonp',
success: function(val) {
console.log('success');
//console.log(val);
},
error: function(val) {
//error gets called but.......
console.log(arguments);
console.log('error');
console.log(val);
}
});

};
api.onJsonp = function() {
//so does the callback!!
console.log('called');
console.log(arguments);
}
//note this code is simplified

最佳答案

你必须打电话

http://api.stackoverflow.com/1.1/users?filter=locrizak&jsonp=jsonp

working demo和代码:

<script>
var URL = "http://api.stackoverflow.com/1.1/";
var api;
api = {
get: function(url) {
$.ajax({

dataType: 'json',
jsonp: false,
jsonpCallback: 'api.onJsonp',
url: url + '&jsonp=api.onJsonp',
});
},
onJsonp: function(val) {
$("body").prepend(val.users[0].reputation);
console.log('called');

}
}

api.get(URL + 'users?filter=locrizak');

//note this code is simplified</script>

关于jquery - 尝试访问 stackoverflow api 但出现解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6797163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com