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

时间:2015-03-24 15:00:01

标签: javascript jquery ajax alert

我使用AJAX帖子提交表单数据,这很有效。

我没有尝试根据成功或失败来显示消息。

到目前为止我已经知道了这一点:

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

提交完成时data将不包含任何内容或更新中的文字,说明失败的原因。

作为示例,如果没有返回错误,我想显示警告。

知道我该怎么做吗?

如果有错误,我想显示不同的提醒。

2 个答案:

答案 0 :(得分:2)

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

在服务器上:

成功:

$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)
     }
 });

答案 1 :(得分:1)

假设您的意思是您的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标记以及消息)