ajax返回一个空请求(未定义的索引)[重复]

Posted

技术标签:

【中文标题】ajax返回一个空请求(未定义的索引)[重复]【英文标题】:ajax returns a null request (Undefined index) [duplicate] 【发布时间】:2021-12-17 10:11:27 【问题描述】:

我有这个简单的 ajax 请求

<script>
  $(document).ready(function() 
        setInterval(() => 
            var val1 = $("#id").val();
            var val2 = $("#dt").val();
            $.ajax(
                url: "refreshState.php",
                type: "POST",
                data:  id: val1 , dt:val2 
            );

        , 2000);
    );
</script>

还有这个 php 代码

<?php
session_start();
if (isset($_REQUEST)) 
require_once("./dbConfig.php");
 $now=date_create(trim($_REQUEST["dt"],"'"));
 $id=$_REQUEST["id"];
 $update_login="UPDATE users set login_time=? where id=?";
 $update_login=$db->prepare($update_login);  
 $update_login->bind_param("ss",$now,$id);
 $update_login->execute();


?>

当我加载页面时,我收到没有发布请求的错误

未定义索引:6

行 C:\xampp\htdocs\projects\ten\refreshState.php 中的 dt

未定义索引:7

行 C:\xampp\htdocs\projects\ten\refreshState.php 中的 id

【问题讨论】:

$_REQUEST 将被设置,无论使用if (!empty($_REQUEST)) 或更好,因为你知道if (!empty($_POST)) 【参考方案1】:

您可以使用 ($_POST) 发布方法

   <?php
session_start();
if ($_POST)
require_once("./dbConfig.php");
 $now=date_create(trim($_POST["dt"],"'"));
 $id=$_POST["id"]; 
 $update_login="UPDATE users set login_time=? where id=?";
 $update_login=$db->prepare($update_login);  
 $update_login->bind_param("ss",$now,$id);
 $update_login->execute();

?>

【讨论】:

【参考方案2】:

试试 $_POST :

    session_start();
    if ($_POST)
    require_once("./dbConfig.php");
     $now=date_create(trim($_POST["dt"],"'"));
     $id=$_POST["id"]; 
     $update_login="UPDATE users set login_time=? where id=?";
     $update_login=$db->prepare($update_login);  
     $update_login->bind_param("ss",$now,$id);
     $update_login->execute();
    

【讨论】:

【参考方案3】:

你可以试试

<script>
  $(document).ready(function() 
        setInterval(() => 
            var val1 = $("#id").val();
            var val2 = $("#dt").val();
            var object = ;
            object.id = val1;
            object.dt = val2;
      
            $.ajax(
                url: "refreshState.php",
                type: "POST",
                data: object
            );

        , 2000);
    );
</script>

【讨论】:

以上是关于ajax返回一个空请求(未定义的索引)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

具有未定义和空值的排序对象数组

Laravel 中的 Ajax 请求返回一个空对象

注意:未定义的索引ajax

当我执行ajax并返回错误时,Jquery获取自定义响应内容[重复]

为啥在使用 AJAX/PHP 时收到未定义索引错误?

函数返回未定义而不是请求的结果