【问题标题】:Is it possible to receive ajax response without PHP echo是否可以在没有 PHP 回显的情况下接收 ajax 响应
【发布时间】:2018-12-07 14:54:51
【问题描述】:

php

<?php echo "registered successfully" ?>

Js

 success : function (response) {
                    alert(response); 
    }

上面可能会在成功时打印 hello,我只想在条件为真时重定向用户。 我可以使用if (response == registered successfully) {then redirect}

但是,如果我不想回显任何内容而只是重定向用户,我可以使用 return "yes"; 之类的东西并在成功函数的 if 条件中使用它。还有什么我可以用来代替 echo 的吗?

【问题讨论】:

  • 只要在出错的时候不返回200的http状态,就可以在success函数中重定向。
  • quit using alert() for troubleshooting.,改用console.log()
  • @JayBlanchard 这篇文章本身已经过时有点有趣——alert 的一些问题已经得到解决,例如“一旦你不小心将警报代码放入循环中,这会让你发疯。” - 浏览器现在允许您在页面上抑制更多对话框。

标签: php ajax


【解决方案1】:

是的,您可以返回一个空字符串。在 JavaScript 端,检查 response.status 是否为 200(表示响应成功)。

你也可以让 PHP 返回一个 204 No Content response:

http_response_code(204)
return;

【讨论】:

    【解决方案2】:

    当代码在我的 ajax 处理程序页面上成功执行时,我通常只是 kill 或 echo echo ("1");

    success : function (response) {
          if (repsonse.trim() == "1"){
            alert(response); 
          }
        }
    

    【讨论】:

      【解决方案3】:

      如果你不需要从 php 获取任何东西,你可以在 ajax 函数之后用 js 重定向

      $.ajax({...});
      window.location.replace(anyurl); 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-18
        • 1970-01-01
        • 2013-12-18
        • 2018-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多