javascript - jQuery - Ajax 在某些帖子上返回错误 500

标签 javascript jquery ajax cakephp post

我有一些 Ajax 一直在实时站点上工作,现在它停止工作了。 Ajax 应该返回一个页面,但返回的是 500 error (internal server error)。 .

奇怪的是我可以导航并发布到 Ajax 调用的页面,所以该页面只是无法通过 Ajax 调用($.post)工作。

另一个奇怪的事情是它在本地工作正常,但不是实时的。该网站上的所有其他 Ajax 也都在工作。

谁知道这可能是什么?顺便说一句,这都是 jQuery 和 CakePHP。

编辑:

apache 错误日志说: “脚本 header 过早结束:php-script、referer...”

编辑 2:

这一切都是在我将服务器切换到 SSL 时发生的。它说上面的错误,然后是“端口 80”。

最佳答案

首先,这与 jQuery、AJAX、POST、CakePHP 或 HTTP header 无关。完整的错误消息是“脚本过早结束”,这意味着 Apache 用来运行 PHP 脚本的 PHP 进程意外终止(即,在 PHP 进程完成其 Fast CGI 协议(protocol)的一部分之前)。这通常意味着 PHP 进程崩溃或导致“段错误”。

PHP 段错误很难解决,而且永远不应该发生; PHP 不应该崩溃。它崩溃的原因可能是由于多种原因造成的。不过,也许这是一个简单的修复。

我要做的第一件事是完全卸载 PHP 并安装最新的稳定版本。如果您正在运行 PHP 5.3 和 Windows,那么您应该只使用 VC6 二进制文件(“VC6 x86 线程安全”包); VC9包在Apache使用时会导致PHP崩溃。重新安装可能会解决您的问题,因为旧版本 PHP 的扩展 DLL/SO 可能仍存在于实时服务器上的扩展目录中。

如果在 Windows 上使用 MySQL,接下来我要做的是确保 MySQL bin 目录位于实时服务器的 Path 中。 .这样做的原因是为了确保操作系统可以“找到”libmySQL.dll。您应该能够通过 SSH 连接到实时服务器,键入 mysql --help,然后查看 MySQL CLI 客户端的使用消息。如果将 MySQL bin 目录添加到 Path,请重新启动 Apache。

如果这两个建议都不能解决问题,那么请用以下答案更新您的问题:

  1. 您使用的是网络托管服务商还是公司 IT 团队管理服务器供您使用?
  2. 如果使用虚拟主机,您是否租用专用服务器?
  3. 您运行的是什么操作系统?
  4. 您使用的是什么版本的 PHP?
  5. 正在加载哪些 PHP 扩展?
  6. 您加载 Zend 扩展吗?
  7. 你用过dl吗? ?

更新:在 5.3.6 及更高版本中,PHP 项目不再发布“VC6”安装程序。建议安装来自 Apache Lounge 的 Apache HTTPD 版本。并使用“VC9”安装程序。

关于javascript - jQuery - Ajax 在某些帖子上返回错误 500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3182292/

相关文章:

javascript - 结契约(Contract)步代码和 promise 的正确方法是什么?

javascript - IE 操作中止 - 常规修复均无效

javascript - 检查选择下拉列表中的选项是否可用

PHP 在 Ajax 重新加载时不生成随机数

javascript - 如何从 Json 创建动态 JavaScript 对象?

javascript - 如何在 Bootstrap 3 中将 font Awesome 图标置于图像之上?

javascript - 使用函数返回 html 在选择选项上添加禁用属性

javascript - Canvas:动画贝塞尔曲线绘制

javascript - JQuery 数据函数返回错误值

javascript - Jquery从单独的数组中获取特定对象的最高值