【问题标题】:Jquery Serialize form data returns errorJquery序列化表单数据返回错误
【发布时间】:2016-12-01 11:02:32
【问题描述】:

我正在尝试使用 jquery 将表单数据发送到另一个 PHP 页面。

这是我的代码:

var datastring = $("#form1").serialize();
            $.ajax({
                type: "POST",
                url: "save.php",
                data: datastring,
                dataType: "json",
                success: function(data) {
                    console.log(data)
                },
                error: function(data) {
                    alert('error handing here');
                    console.log(data)
                }
            });

当我运行此程序时,我会收到一条警告“此处处理错误”并将输出记录到我的控制台。

保存只包含:

<?php
    ECHO "HELLO";
?>

控制台上记录的数据是:

Object {readyState: 4, responseText: "HELLO", status: 200, statusText: "OK"}

任何人都可以告诉我为什么这不起作用..我如何读取提交给 save.php 的数据?

谢谢

【问题讨论】:

  • 您正在请求 JSON 响应,但 HELLO 不是有效的 JSON。因此,jQuery 的内部解析操作失败,您会收到错误消息。
  • 您没有从 PHP 脚本返回格式化的 JSON 字符串,这就是原因。因此,要对其进行测试,请返回 JSON 或删除 ajax 请求的 datatype 选项
  • dataType: 'text' 将解决此问题,或者在您的 PHP 中使用 json_encode() 来实际返回 JSON 响应。
  • 谢谢 - 愚蠢的错误..

标签: jquery forms serialization


【解决方案1】:

您没有在脚本中回复JSON,它是纯文本。所以你应该把你的dataType改成html或者text

dataType: "html",

或者将你的 php 脚本改成 json 响应:

echo json_encode(array("text" => "HELLO"));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 2014-07-23
    相关资源
    最近更新 更多