Javascript $.getJSON不返回结果
我需要做一个页面,允许用户搜索得到一个维基百科页面与他们的结果 相关的HTML是:Javascript $.getJSON不返回结果,javascript,html,json,Javascript,Html,Json,我需要做一个页面,允许用户搜索得到一个维基百科页面与他们的结果 相关的HTML是: <form class='search-form' onsubmit='return false'> <input class='search-input' id="search-input" type="text" /> <button class='btn search-btn'><i class="fa fa-search" aria-hidden="tru
<form class='search-form' onsubmit='return false'>
<input class='search-input' id="search-input" type="text" />
<button class='btn search-btn'><i class="fa fa-search" aria-hidden="true"></i></button>
</form>
一旦我运行此警报,我需要更改警报以打开一个包含JSON数据中URL的窗口,但当我到达它时,我将跨越这座桥梁。现在,JSON什么也没做。下面介绍如何向Wikipedia发出返回JSONP的请求,这使得在没有CORS头的情况下执行跨源请求成为可能 函数getWiki(查询){ 返回$.ajax({ 网址:'https://en.wikipedia.org/w/api.php', 数据:{ 格式:“json”, 操作:“opensearch”, 搜索:查询 }, jsonp:“回调”, 数据类型:“jsonp” }); } $('.search form')。关于('submit',函数(e){ e、 预防默认值(); var q=$(“#搜索输入”).val(); getWiki(q).done(函数(数据){ 控制台日志(数据); }).fail(函数(err){}) });代码>
搜寻
以下是如何向Wikipedia发出一个返回JSONP的请求,这样就可以在没有CORS头的情况下执行跨源请求
函数getWiki(查询){
返回$.ajax({
网址:'https://en.wikipedia.org/w/api.php',
数据:{
格式:“json”,
操作:“opensearch”,
搜索:查询
},
jsonp:“回调”,
数据类型:“jsonp”
});
}
$('.search form')。关于('submit',函数(e){
e、 预防默认值();
var q=$(“#搜索输入”).val();
getWiki(q).done(函数(数据){
控制台日志(数据);
}).fail(函数(err){})
});代码>
搜寻
不幸的是,你永远也无法到达那里,因为URL没有CORS头,无法从客户端代码访问。这意味着什么?这基本上意味着你做得不正确,因为使用ajax的浏览器无法访问URL。但是,如果使用正确的参数,Wikipedia确实支持JSONP。“这意味着什么?”如果启用了CORS,则只能向同一服务器或外部服务器发出Ajax请求。此服务器不启用CORS,因此无法向其发出Ajax请求。有关详细信息,请参阅。@adeneo:有趣的是,在文档中的示例中,没有使用JSONP:。不幸的是,您永远无法访问该URL,因为URL没有CORS头,并且无法从客户端代码访问。这意味着什么?这基本上意味着您没有正确执行该操作,因为使用ajax的浏览器无法访问URL。但是,如果使用正确的参数,Wikipedia确实支持JSONP。“这意味着什么?”如果启用了CORS,则只能向同一服务器或外部服务器发出Ajax请求。此服务器不启用CORS,因此无法向其发出Ajax请求。有关更多信息,请参阅。@adeneo:有趣的是,在文档中的示例中,不使用JSONP:。
$(document).ready(function() {
$(".search-btn").on("click", function() {
$.getJSON(
"https://en.wikipedia.org/w/api.php?action=opensearch&search=te&format=json",
function(data) {
alert(JSON.stringify(data));
}
);
});
});