Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $.getJSON不返回结果_Javascript_Html_Json - Fatal编程技术网

Javascript $.getJSON不返回结果

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

我需要做一个页面,允许用户搜索得到一个维基百科页面与他们的结果

相关的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="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));
      }
    );
  });
});