Javascript Ajax成功在控制台中显示消息

Javascript Ajax成功在控制台中显示消息,javascript,arrays,json,ajax,Javascript,Arrays,Json,Ajax,我有一个数组中的数据,该数组应该使用ajax发送到php文件。 我尝试使用console.log显示正在发送的阵列,如果数据成功发送,还可以显示一条消息。但是,我的控制台上没有显示任何消息。有人能告诉我我的代码有什么问题吗 var that = $(this), url = that.attr('action'), type = that.attr('method'), data = {}; var cart = {}; cart.item_name

我有一个数组中的数据,该数组应该使用ajax发送到php文件。 我尝试使用console.log显示正在发送的阵列,如果数据成功发送,还可以显示一条消息。但是,我的控制台上没有显示任何消息。有人能告诉我我的代码有什么问题吗

 var that = $(this),
    url = that.attr('action'),
    type = that.attr('method'),

    data = {};
    var cart = {};

    cart.item_name = miniform.elements['itemId'].value;
    cart.quantity = miniform.elements['quantityId'].value;
    cart.amount = miniform.elements['amountId'].value;
    cart.total = amount * quantity;

    var jsonString = JSON.stringify(cart);

   $.ajax({
    url: url,
    type: type,
    data:{data:jsonString},
    success: function(){
        console.log('Email Sent');
     }
    });
 console.log(jsonString);
}

最有可能发生的情况是,您没有重新调整实际的成功消息,这就是为什么它没有被记录。不要在AJAX调用中使用
success
函数,而是将其更改为
always
,然后查看是否返回结果。您还需要将一个参数添加到
始终
函数中,该函数将作为您的响应,如下所示:

$.ajax({
  url: url,
  type: type,
  data:{data:jsonString},
  always: function(result){
    console.log('Email Sent');
    console.log(result);
  }
});
正如评论中指出的,您还应该有一个
错误
回调,这样您就可以随时知道是否有错误。看起来是这样的:

$.ajax({
  url: url,
  type: type,
  data:{data:jsonString},
  success: function(result){
    console.log('Email Sent');
    console.log(result);
  },
  error: function(error){
    throw new Error('Did not work');
  }
});
如果您可以展示您的PHP,我们可以帮助您获得
success
响应

编辑 使用浏览器中的开发工具查看是否提出了请求:


另外,请查看这个JSBin以获得AJAX请求的工作示例:

正如其他人已经指出的那样,如果不检查控制台/后端,很难说出什么是错误的。我假设您希望使用从表单收集的一些数据从服务器发送电子邮件,并且您的后端脚本和前端脚本都位于同一个域中。那么,你能做什么

  • 首先,检查应该发送数据的函数是否 实际触发(在 该职能的开始);你得到的确实是可疑的 控制台里什么也没有。也许你知道,但是如果你想做一些工作,你必须给你的动作分配一个函数(处理器)。我的意思是应该有一个点击事件处理程序,你应该把所有JS的东西放在里面。从您共享的代码片段看,这样一个处理程序的存在并不明显。类似这样的内容:
    $('.form_submit_btn').on('click',function(){//所有代码都在这里})
  • 检查后端脚本是否正常工作并发送电子邮件。 尝试通过url直接调用该脚本
  • 检查前端脚本是否确实在发送数据,并且是否能够 为了得到结果。创建一个简单的后端脚本 输出类似“Hello world!”的内容,并在AJAX中更改url 呼唤它
  • 将错误处理程序添加到AJAX函数中 尽管我想提到这一行:

     cart.total = amount * quantity;
    

    我觉得很奇怪。你真的有这样的变量吗?它们不应该分别是
    cart.amount
    cart.quantity
    吗?

    这样试试,看看你得到了什么->@adeneo仍然不起作用我已经尝试了你的代码,但仍然没有显示任何内容console@lorrainemutheu您是否使用更新的
    始终
    功能进行了尝试?控制台里有什么东西吗?你的PHP看起来像什么?谢谢,它工作了。我使用您的第一个答案来使用警报,并在我的代码中找到了问题所在。再次感谢您对购物车的看法也是正确的。总计……对于那些想知道相同问题的人,变量应该是cart.amount和cart.quantity