我的索引页面上有一个搜索表单。
<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中? 我无法理解。
答案 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>