如何根据ajax中的搜索字段输入调用URL?

时间:2015-09-28 15:32:36

标签: javascript php jquery ajax

我的索引页面上有一个搜索表单。

<form  method="post" action="search.php?go"  id="searchform"> 
          <input  type="text" name="name"> 
          <input  type="submit" name="submit" value="Search"> 
        </form>

这是search.php上代码的一部分

var url = "https://externalwebsite.com/search?term=" + searchterms + "&variable2=something";
    $.getJSON(url,function(data) {

        var somevariable = Object.keys(data).length;

           var div_data = '';
            $.each(data, function(i,data) {
    if ($("#some_div").html() == '');
......

我想调用一个外部搜索引擎来回放json中的数据。

如何将搜索词放入ajax变量“searchterms”中,以便将搜索词添加到外部搜索引擎的URL中? 我无法理解。

3 个答案:

答案 0 :(得分:2)

您无法从其他网站上阅读,这是为了防止XSS(跨站点脚本)攻击。

如果您能够从其他网站阅读,您可能会窃取用户的信息。向另一个网站发出请求的唯一方法是通过&#34; JSONP&#34;。

JSONP通过充当外部脚本来绕过安全要求。它不是加载原始JSON数据{"type":"JSON"},而是使用原始数据调用函数。 jsonpFunction({"type":"JSONP"});

您必须提供回调函数才能处理它。

答案 1 :(得分:1)

假设您的input字段name是您要从中提取字词的字段,请为其指定ID:

<input  type="text" name="name" id="searchbox">

然后使用jQuery获取值:

var searchterms = $('#searchbox').val();

答案 2 :(得分:1)

尝试以下代码,

网址替换为您自己的

var searchterms = '';

function getTerm(term) {
  console.log(term);
  $('.term').text(term);
}


$("#submit").on("click", function() {
  searchterms = $("#searchbox").val();
  console.log(searchterms);
  var url = "https://externalwebsite.com/search?term=" + searchterms + "&variable2=something";
  console.log(url);
  $.getJSON(url, function(data) {
    console.log(data);
  });
  return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="text" name="name" id="searchbox" onkeydown="getTerm(this.value);">

<input type="button" id="submit" value="search">

<p class='term'></p>