【问题标题】:Why I am getting blank response on ajax request?为什么我在 ajax 请求上得到空白响应?
【发布时间】:2015-08-26 02:48:18
【问题描述】:

如何检查响应是否为空白? 我试过这样做,但它不起作用:

$.ajax({
          url: 'http://localhost/sample.php',
          type: 'POST',
          data: ({name: fname}),
          dataType: 'json',
          success: function(response){
                  if( response == null || response == ""){
                     //do something
                  }
          }
});

【问题讨论】:

  • 可能是有空格所以试试!response || response.trim() == ""
  • 开发者工具(在大多数不错的浏览器上按 F12) - 大多数都有一个网络选项卡,您可以在其中检查原始流量 - 应该可以准确显示返回的内容
  • 检查开发者工具。可能是你的 php 文件而不是你的 javascript 文件中的东西
  • 显示 sample.php 的服务器端代码

标签: javascript jquery ajax post


【解决方案1】:

空的 json 字符串用“{}”表示,而不是“”。因此,如果您的服务器发送“”,我认为不会触发成功回调。如果服务器实际发送“{}”,那么你需要修改你的条件。

【讨论】:

  • 你是对的。我应该把“错误:函数()”它捕获空白响应。问题解决了。 :) 谢谢! :)
【解决方案2】:

你可以检查响应的长度

$.ajax({
          url: 'http://localhost/sample.php',
          type: 'POST',
          data: ({name: fname}),
          dataType: 'json',
          success: function(response){
                  if( response != null || !response.length > 0){
                     //do something
                  }
          }
});

你用 fname 变量传递了什么?

【讨论】:

    【解决方案3】:

    通常即使是空白回复也会有空格。尝试使用删除所有空格

    if(reponse.replace(/\s/g,'') == '') ...
    

    【讨论】: