【问题标题】:JQuery AJAX Post Not Posting Data To PHPJQuery AJAX Post 不向 PHP 发布数据
【发布时间】:2017-06-25 17:20:14
【问题描述】:

我似乎无法使用 JQuery AJAX 将任何数据发布到 PHP。 我找到的答案都没有给出明确的解释或解决方案。

JQuery AJAX 帖子:

$.post("requestlogin.php", {
        SignedIn: false,
        TokenID: 12345
    },
    function(data){
        alert("Data: " + data );
    });

requestlogin.php:

<?php
    $SignedIn = $_POST["SignedIn"];
    $TokenID = $_POST["TokenID"];
    echo $SignedIn . ' - ' . $TokenID;
?>

警告框中唯一显示的是“数据:-”。

数据没有发布吗? PHP是看不到数据吗? JQuery Post 的数据格式是否错误?

var_dump($_REQUEST);var_dump($_POST); 分别打印array(0){}..

感谢您的宝贵时间。

【问题讨论】:

  • 尝试使用 chrome 控制台的网络选项卡调试您的 AJAX 请求,查看该文件是否已被 AJAX 请求正确调用
  • 我可以在 chrome 窗口中看到 requestlogin.php 正在被调用。
  • 您可以尝试将False 更改为false 吗?
  • 仍然无法检索发布的数据。从列表中选择 requestlogin.php 后,Chrome 的网络标签会显示一个“表单数据”条目,其中包含我发布的数据。
  • 如果您检查请求,您是否看到参数已正确发送到服务器?

标签: javascript php jquery ajax


【解决方案1】:

这是 PHPStorm 除了 GET 数据之外无法传输任何内容的问题。切换到 WAMP 进行开发,一切顺利!

应该从一开始就使用此设置。

【讨论】:

    【解决方案2】:

    试试这个。

    $.ajax({
        type:'post',
        url: 'requestlogin.php',
        data: { SignedIn: false,
        TokenID: 12345},
        dataType: 'text', 
        cache: false,
        error: function(data, textStatus, errorThrown){
        console.log(textStatus);},
        success: function (data, textStatus, xmlhttp){
        alert(data); }
    });
    

    您的问题很可能是您没有在 $.post() 方法中指定数据类型,并且它在您的完整函数中将 xmlhttp 响应作为“数据”发送回,该函数将读取“对象对象”或"" 当您在字符串中使用它时。我避免使用 $.get 和 $.post,因为我个人总是遇到问题,所以我只记得 $.ajax 的原型,抱歉,哈哈。当您使用浏览器中的控制台确认文件内容时,无论哪种方式都可以轻松调试此类问题。如果您不知道如何在浏览器中访问控制台,只需右键单击您使用的任何浏览器,选择检查/检查代码并在出现的窗口中选择控制台选项卡。

    【讨论】:

    • 您的类型属性必须是字符串,而不是post 变量。 url 参数也是如此。此外,您的参数 Signed in 包含 JSON 对象中不允许发送到服务器的空格。此外,默认的数据类型是由 jQuery ajax 方法自动检测的。这里是文档:dataType Type: String The type of data expected from the server. Default: Intelligent Guess (xml, json, script, text, html). 我真的不认为问题的原因是使用了快捷方式post 或缺少dataType 字段。
    • 抱歉出现错误,我是在手机上打字,所以在准确性方面有点问题。我会修复它谢谢你告诉我。
    【解决方案3】:

    你可以简单地使用:

    if((isset( $_POST["SignedIn"]))&&(isset($_POST["TokenID"]))){
      $SignedIn = $_POST["SignedIn"];
      $TokenID = $_POST["TokenID"];
        echo $SignedIn . ' - ' . $TokenID;
    }
    

    并保持相同的 Jquery 代码:

    $.post('requestlogin.php',
        {
            SignedIn: false,
            TokenID: 12345
        },
        function(data){
            alert("Data: " + data );
        });
    

    【讨论】:

      猜你喜欢
      • 2014-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-29
      • 1970-01-01
      • 2023-04-05
      • 2021-01-17
      相关资源
      最近更新 更多