jQuery AJAX GET请求没有正确调用

时间:2016-04-03 04:34:34

标签: javascript php jquery ajax get

我正在从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];}
?>

3 个答案:

答案 0 :(得分:2)

在ajax调用中更正data

.......
$.ajax({
     method: "GET",
     url: "search.php",
     data : { searchterm : searchterm } // Change here
})  
.......

根据文档data调用中的ajax是要发送到服务器的数据。如果不是字符串,它将转换为查询字符串。它附加到GET请求的URL。对象必须是键/值对。

Reference

答案 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 }