Ajax 响应调用,404 Not Found

Posted

技术标签:

【中文标题】Ajax 响应调用,404 Not Found【英文标题】:Ajax response call, 404 Not Found 【发布时间】:2011-01-24 12:10:13 【问题描述】:

我尝试使用 wordpress 和 codeigniter 在最好的 CMS 和最好的 php 框架之间进行智能连接。实际上,我打算使用 codeigniter 进行数据库管理,使用 wordpress 进行显示。但我想在 wordpress 中使用 codeigniter。所以,我有一个像这样的文件树:

www
- codigniter-core folder
  - .htaccess
- wordpress-core folder
- .htaccess
- index.php

我怎样才能让 wordpress .htaccess 也覆盖在 jquery ajax 调用中的 codeigniter ant 不引发 404 错误。我当前的 wordpress .htaccess 文件是:

<IfModule mod_rewrite.c>

重写引擎开启 RewriteBase / RewriteCond %REQUEST_FILENAME !-f #RewriteCond %REQUEST_FILENAME !-d RewriteCond $1 !^/codeigniter-core/ 重写规则 ^(.*)$ /index.php/$1 [L]

我也尝试向Wordpress Forums 和 Codeigniter 论坛提问,但没有得到答复。我认为这是一个重写条件或规则的地狱,但我不知道......

【问题讨论】:

说“最好的 CMS”和“最好的 PHP 框架”是不必要的,也没有任何帮助解释你的问题。保持问题干净并在其他地方分享您的个人感受,这是一个技术问题。 【参考方案1】:

我在创建一个通过 jQuery ajax 方法调用的控制器文件时遇到了这个问题。此控制器文件包含 wp-blog-header.php。

当您在 WP 框架之外的文件中包含 wp-blog-header.php 时,WordPress 会检查当前文件,如果它不在其数据库中,则返回 404。解决方法是添加一个wp-blog-header.php 之后的 200 状态标头。

header("HTTP/1.1 200 OK");

现在 (jQuery) ajax 文件正确返回,没有 404。

【讨论】:

谢谢!在 WP Ajax 请求中收到 404,这解决了它。【参考方案2】:

这很好用......无法告诉你我寻找这个答案有多久了。我怀疑这与标头错误有关,因为萤火虫显示了响应,但标头有 404。谢谢这为我节省了很多时间。

顺便说一句,我用它来修复Quick Search plugin by Giulio Ganci

只需打开插件文件夹中的“search.php”文件并添加

header("HTTP/1.1 200 OK");

就在第一行代码之后。完成后,该文件中的前几行代码应如下所示

<?php
    require('../../../wp-blog-header.php'); 
    header("HTTP/1.1 200 OK");


    if (isset($_GET['s']) && trim($_GET['s']) != '') 

【讨论】:

以上是关于Ajax 响应调用,404 Not Found的主要内容,如果未能解决你的问题,请参考以下文章

GMAIL API 历史端点仅在 Android 上返回 404 not found 响应代码

如何为 404 Not Found 创建自定义响应消息?

加载资源失败:服务器响应状态为 404 (Not Found) angular js + ionic

404 Not Found 或错误请求?

命令引发异常:NotFound: 404 Not Found (error code: 0): Interaction is unknown (你已经响应了交互)

将正文添加到 404 Not Found 异常