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

Javascript AJAX数据包含一个或多个单词。。?,javascript,jquery,ajax,alert,Javascript,Jquery,Ajax,Alert,我使用AJAX post提交表单数据,效果很好 我并不是想表达一个基于成功或失败的信息 到目前为止,我已经做到了: alert("Yehh.. Saving Data."); $.ajax({ url:'go.php?doit=1', data:$("form").serialize(), type:'POST' }) .done(function(data) { conso

我使用AJAX post提交表单数据,效果很好

我并不是想表达一个基于成功或失败的信息

到目前为止,我已经做到了:

        alert("Yehh.. Saving Data.");
        $.ajax({
        url:'go.php?doit=1',
        data:$("form").serialize(),
        type:'POST' })
        .done(function(data) { 
            console.log(data);
        })
当提交完成时,
数据
将不包含任何内容,或包含更新返回的文本,说明其失败原因

例如,如果没有返回错误,我想显示一个警报

你知道我怎么做吗


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

假设您的意思是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对象,其中包含您正试图传递的确切数据(例如
有效
失败
标志,以及消息)

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

在服务器上:

成功:

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

您正在查找
success
error
回调:请阅读此处的文档:如果服务器返回空字符串和状态代码200,则不会。HTTP请求就是这样,但是验证(或其他)抛出了一个errorHeh,这比我强@火箭-虽然我的回答在技术上解决了你发布的问题,但这是更好的方法。你实际上写道:“返回JSON对象可能是更好的主意”。另外,“$.ajax”函数只是浪费时间:数据就是这样,而不是代码审查;)对不起,我冒犯了你。这不是我的本意。我只是说你指出他应该返回一个json对象是对的。但是我保留了这样一部分:“$ajax”函数在您有“$post”时是浪费时间的我没有生气,哈哈。我完全同意你的看法。只是尽量少修改OP的代码,以免把他甩了:)