• <tfoot id='7BI7W'></tfoot>

    <small id='7BI7W'></small><noframes id='7BI7W'>

    <i id='7BI7W'><tr id='7BI7W'><dt id='7BI7W'><q id='7BI7W'><span id='7BI7W'><b id='7BI7W'><form id='7BI7W'><ins id='7BI7W'></ins><ul id='7BI7W'></ul><sub id='7BI7W'></sub></form><legend id='7BI7W'></legend><bdo id='7BI7W'><pre id='7BI7W'><center id='7BI7W'></center></pre></bdo></b><th id='7BI7W'></th></span></q></dt></tr></i><div id='7BI7W'><tfoot id='7BI7W'></tfoot><dl id='7BI7W'><fieldset id='7BI7W'></fieldset></dl></div>

        <legend id='7BI7W'><style id='7BI7W'><dir id='7BI7W'><q id='7BI7W'></q></dir></style></legend>

          <bdo id='7BI7W'></bdo><ul id='7BI7W'></ul>

        jsonp跨域获取百度联想词的方法分析

        这里是“jsonp跨域获取百度联想词的方法分析”的完整攻略。

            <tbody id='ErBGe'></tbody>

              <i id='ErBGe'><tr id='ErBGe'><dt id='ErBGe'><q id='ErBGe'><span id='ErBGe'><b id='ErBGe'><form id='ErBGe'><ins id='ErBGe'></ins><ul id='ErBGe'></ul><sub id='ErBGe'></sub></form><legend id='ErBGe'></legend><bdo id='ErBGe'><pre id='ErBGe'><center id='ErBGe'></center></pre></bdo></b><th id='ErBGe'></th></span></q></dt></tr></i><div id='ErBGe'><tfoot id='ErBGe'></tfoot><dl id='ErBGe'><fieldset id='ErBGe'></fieldset></dl></div>
              • <bdo id='ErBGe'></bdo><ul id='ErBGe'></ul>
              • <small id='ErBGe'></small><noframes id='ErBGe'>

                • <legend id='ErBGe'><style id='ErBGe'><dir id='ErBGe'><q id='ErBGe'></q></dir></style></legend>
                  <tfoot id='ErBGe'></tfoot>

                  这里是“jsonp跨域获取百度联想词的方法分析”的完整攻略。

                  什么是jsonp跨域?

                  因为同源策略的限制,浏览器不能直接访问非同源的资源。但是某些情况下我们需要跨域请求数据。jsonp跨域是一种能够解决这个问题的方法。

                  jsonp跨域的原理是利用script标签不受同源策略的限制的特性,以动态创建script标签来访问非同源数据。网站请求一个跨域的JS或JSONP资源,将要请求的回调函数名字写到url的查询字符串中,非同源的服务器返回一个JavaScript脚本或JSONP,并且在响应头中设置回调函数名为预期的函数名称。然后浏览器会把这个脚本或JSONP载入到DOM中,此时执行载入的脚本会直接调用请求url中指定的回调函数,然后将服务器返回的数据作为参数传递给回调函数。

                  JSONP基于script标签,因此必须是get请求。

                  如何使用JSONP获取百度联想词?

                  以获取百度搜索联想词为例:

                  var input = document.getElementById("input");
                  input.addEventListener("input", function() {
                      var value = input.value.trim();
                      if (value === "") {
                          return;
                      }
                      var script = document.createElement("script");
                      script.src = "https://www.baidu.com/su?wd=" + encodeURIComponent(value) + "&cb=callback";
                      document.head.appendChild(script);
                  });
                  function callback(response) {
                      console.log(response.s);
                  }
                  

                  上述代码中,我们首先获取输入框中的文本,然后根据这个文本创建一个script标签,添加到页面head里。我们把想要查询的值作为url的查询字符串传递给远程服务器,并在url中指定回调函数的名字为“callback”。服务器返回JSONP,其中包含了“callback(response)”这个回调函数,浏览器把这个函数载入到DOM中并执行。这样就可以通过回调函数获取到联想词了。

                  接下来我们再看一个例子。

                  比如这里有一个不支持CORS的Api地址:https://api.apiopen.top/getJoke?page=1&count=2&type=video。

                  我们可以通过JSONP获取到这个Api的数据:

                  function getJoke(response) {
                      console.log(response.result);
                  }
                  var script = document.createElement("script");
                  script.src = "https://api.apiopen.top/getJoke?page=1&count=2&type=video&callback=getJoke";
                  document.head.appendChild(script);
                  

                  这段代码中,我们同样动态创建script标签,并指定url包含了想要获取的Api地址和回调函数名称。注意:这里的回调函数名称必须和前端定义的函数名称一致。需要注意的是,当访问的Api返回的不是JSONP格式的数据时,依然会遵循同源策略,jsonp无法有效获取需要的数据。

                  以上是JSONP跨域获取百度联想词的方法分析,希望能对你有所帮助。

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  Lambda表达式是Java 8中引入的新特性之一,它是一个匿名函数,可以捕获参数并表现为一个代码块,而不像方法一样需要一个固定的名称。它主要用于传递行为或代码块以及事件处理等操作。
                  下面为您详细讲解基于Java的回调函数。
                  在Java中,equals()是用来比较两个对象是否相等的函数。equals()方法是Object类中的方法,因此所有Java类都包含equals()方法。在默认情况下,equals()方法比较对象的引用地址是否相同,即两个对象是否是同一个实例。但是,我们可以覆盖equals()方法,来定义自
                  JavaWeb是Java在Web领域的应用,是目前非常热门的技术之一。但是JavaWeb涉及到的技术非常广泛,初学者很容易迷失方向。本文总结了JavaWeb的基础知识,为初学者提供了一份学习笔记分享,希望能够帮助大家快速入门。
                  在Java编程中,字符串操作是很常见的,而替换字符串是其中常用的操作之一。Java提供了三种函数用于替换字符串:replace、replaceAll和replaceFirst。这篇文章将为您详细介绍它们的用法。
                  进制是数学中一种表示数值大小的方法,常见的进制有10进制、2进制、16进制等。
                    • <legend id='8PDKk'><style id='8PDKk'><dir id='8PDKk'><q id='8PDKk'></q></dir></style></legend>
                        <tbody id='8PDKk'></tbody>

                      <small id='8PDKk'></small><noframes id='8PDKk'>

                      • <bdo id='8PDKk'></bdo><ul id='8PDKk'></ul>
                        <tfoot id='8PDKk'></tfoot>

                          <i id='8PDKk'><tr id='8PDKk'><dt id='8PDKk'><q id='8PDKk'><span id='8PDKk'><b id='8PDKk'><form id='8PDKk'><ins id='8PDKk'></ins><ul id='8PDKk'></ul><sub id='8PDKk'></sub></form><legend id='8PDKk'></legend><bdo id='8PDKk'><pre id='8PDKk'><center id='8PDKk'></center></pre></bdo></b><th id='8PDKk'></th></span></q></dt></tr></i><div id='8PDKk'><tfoot id='8PDKk'></tfoot><dl id='8PDKk'><fieldset id='8PDKk'></fieldset></dl></div>