【问题标题】:How to obtain more information from Ajax call to PHP file failure?如何从 Ajax 调用 PHP 文件失败中获取更多信息?
【发布时间】:2012-04-19 04:40:41
【问题描述】:

为了上线,我将我的网站移到服务器上,但我遇到了一个问题,即 Ajax 调用旨在返回文本值的 PHP 文件。我试图找出错误是什么。该代码适用于我的本地 PC。

我从 Ajax 调用中得到的错误是:

Error: error Internal Server Error

我正在使用以下代码来执行调用:

function goClick(ttype, vvalue) {

    $.get(fw_script, { type: ttype, value: vvalue, langpref: langpref })
        .success(function(result) {
            setResult(result);
        })
        .error(function(jqXHR, textStatus, errorThrown) {
            setResult("Error: " + textStatus + " " + errorThrown);
            alert("Failure");
        });

}

如何获得有关可能导致此问题的原因的更多信息?我不是 PHP 专家。 PHP 中是否有与 Java 的 try {} catch {} finally{} 等价的东西?这是否是在服务器端捕获异常错误的正确方法?我应该用 catch 包装我的 PHP 代码吗?如何检索有关内部错误的信息?

【问题讨论】:

  • 确保请求首先到达所需的 php 文件。你在萤火虫中看到了什么? (安装 firebug firefox 插件)获取错误详情
  • 根据 FireBug 调用的 URL 似乎是正确的

标签: php javascript ajax error-handling internal


【解决方案1】:

你完全正确。 try {} catch {} 在 PHP 中的工作方式相同。 http://php.net/manual/en/language.exceptions.php

内部服务器错误通常是由 PHP 文件中的拼写错误或类似情况引起的。您可以尝试启用错误日志记录以获取有关错误的更多详细信息。

【讨论】:

    【解决方案2】:

    将以下代码放在 php 脚本之上 // 记录 php 错误

    <?php
    @ini_set('log_errors','On'); // enable or disable php error logging (use 'On' or 'Off')
    @ini_set('display_errors','Off'); // enable or disable public display of errors (use 'On' or 'Off')
    @ini_set('error_log','/home/path/logs/php-errors.log'); // path to server-writable log file
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-13
      • 1970-01-01
      • 1970-01-01
      • 2015-10-14
      • 2012-06-11
      • 2010-11-11
      相关资源
      最近更新 更多