我正在从jQuery AJAX函数调用GET请求,但GET请求似乎没有正确调用。运行脚本后,地址栏只显示“ index.php?”,而不是预期的“ index.php?searchterm = searchterm ”。
的index.php
$(function(){
$("form").submit(function(){
var searchterm = document.getElementByID("searchterm").value;
$.ajax({
method: "GET",
url: "search.php",
data: searchterm
})
.done(function(res) {
document.getElementById("item1").innerHTML = res;
});
});
});
如果有任何相关性,请点击search.php
<?php
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
$searchterm= isset($_GET['searchterm']) ? $_GET["searchterm"] : '';
exec("C:\Users\Callum\AppData\Local\Programs\Python\Python35-32\python.exe search.py $searchterm", $output, $result);
echo $result[0];}
?>
答案 0 :(得分:2)
在ajax调用中更正data
:
.......
$.ajax({
method: "GET",
url: "search.php",
data : { searchterm : searchterm } // Change here
})
.......
根据文档,data
调用中的ajax
是要发送到服务器的数据。如果不是字符串,它将转换为查询字符串。它附加到GET请求的URL。对象必须是键/值对。
答案 1 :(得分:0)
你应该打开firebug控制台,看看你是否可以看到ajax请求。如果它是可见的,你可以点击它,你会看到它传递给所请求的URL的哪些数据search.php
此外,您没有使用ajax正确传递数据。如果您使用的是ajax,那么浏览器地址栏将不会更新,因为页面没有重新加载。
$(function(){
$("form").submit(function(){
var searchterm = document.getElementsByID("searchterm").value;
$.ajax({
method: "GET",
url: "search.php",
data: { searchterm : searchterm }//This is how to pass data correctly
})
.done(function(res) {
document.getElementById("item1").innerHTML = res;
});
});
});
答案 2 :(得分:0)
ajax函数的data属性是一个对象,所以它应该如下所示:
data: { searchterm: searchterm }