AJAX数据包含一个或多个单词.

AJAX data contains one or more words..?

本文关键字:一个 单词 AJAX 数据包      更新时间:2023-09-26

我正在使用AJAX帖子提交表单数据,这很好。

我并不是想展示一个基于成功或失败的信息。。

到目前为止,我已经知道了:

        alert("Yehh.. Saving Data.");
        $.ajax({
        url:'go.php?doit=1',
        data:$("form").serialize(),
        type:'POST' })
        .done(function(data) { 
            console.log(data);
        })

当提交完成时,data将不包含任何内容,或者包含更新返回的文本,说明其失败的原因。

举个例子,如果没有返回错误,我想显示一个警告。

知道我该怎么做吗?

如果出现错误,我希望显示不同的警报。

在这两种情况下,我都会从服务器返回响应,只是为了更安全。。。但如果你不这样做,它会起作用,除非服务器出现问题,没有返回任何字符串,你认为你成功了!你看到这里的问题了吗?

在服务器上:

成功:

$response = {
    'status': 1,
    'message': 'Success'
}

错误:

$response = {
    'status': 0,
    'message': 'Some error'
}

Ajax函数:

$.post( "go.php?doit=1",
    {
       data : $("form").serialize()
    },
    function(data) {
         if(data.status == 1){
         // success! Do something
     }
     else{
         // error! Do something! eg: alert message
         alert(data.message)
     }
 });

假设您的HTTP请求正在发送,并且您正在评估有意的返回值(例如,您正在验证表单,并返回一个空字符串表示错误),您可以执行以下操作:

JS

  alert("Yehh.. Saving Data.");
  $.ajax({
      url: 'go.php?doit=1',
      data: $("form").serialize(),
      type: 'POST'
  })
  .done(function (data) {
      if ( typeof data !== 'string' )
          console.log("data is not a string. Consider 'return false' if this is unexpected?")
      if ( data.length > 0 )
          console.log("There was data returned")
      if ( data.length === 0 )
          console.log("Empty string returned!")
  })

最好返回一个JSON对象,其中包含您试图传递的确切数据(例如validfail标志,以及一条消息)