我正在研究 Free Code Camp 的 wiki 查看器,并试图找出 api 调用。我认为 getjson 和 ajax 是等效的,但也许我做错了什么。
所以一开始我使用了这个 getjson 代码:
$.getJSON('http://en.wikipedia.org/w/api.php?action=query&list=search&format=json&srsearch=' + search,
function(api){
console.log(api);
}, 'jsonp');
但它返回了此错误:请求的资源上不存在“Access-Control-Allow-Origin” header 。因此,不允许访问源“null”。
然后我使用具有相同网址的ajax:
$.ajax({
url: 'http://en.wikipedia.org/w/api.php?action=query&list=search&format=json&srsearch=' + search,
dataType: 'jsonp',
success: getWiki //just console logs the api
});
这似乎返回了 api 调用。谁能解释一下为什么 getjson 不起作用而 ajax 起作用?
最佳答案
您缺少强制 $.getJSON
执行 JSONP 请求所需的 callback=?
查询参数
$.getJSON('http://en.wikipedia.org/w/api.php?callback=?', {
action: 'query',
list: 'search',
format: 'json',
srsearch: search
}, api => {
// response handler
})
关于javascript - 为什么 .getjson 不起作用但 .ajax 起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42708007/