【问题标题】:jQuery AJAX GET Request not calling properlyjQuery AJAX GET 请求未正确调用
【发布时间】:2016-04-03 04:34:34
【问题描述】:

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

【问题讨论】:

  • 与此处的特定问题无关,但您可能希望考虑该代码上的 shell 注入漏洞。例如。当搜索词是“foo bar; dir c:”时返回什么?
  • 是的,我已经考虑到了这一点。只是想先让脚本在基本级别上执行。

标签: javascript php jquery ajax get


【解决方案1】:

将 ajax 调用中的 data 正确为:

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

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

Reference

【讨论】:

    【解决方案2】:

    您应该打开 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;
        });
    });
    });
    

    【讨论】:

      【解决方案3】:

      ajax 函数的 data 属性是一个对象,所以它应该是这样的:

      data: { searchterm: searchterm }
      

      【讨论】:

        猜你喜欢
        • 2017-04-11
        • 2011-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多