【问题标题】:Incorrect server response code - a non-404 is being reported as a 404服务器响应代码不正确 - 非 404 被报告为 404
【发布时间】:2010-11-02 19:59:04
【问题描述】:

我正在尝试调试一个 WordPress 视频播放器主题,该主题使用此标准 AJAX 请求来填充类别中的视频列表:

function getdata(What) {
try {
    xmlhttp = window.XMLHttpRequest?new XMLHttpRequest():
    new ActiveXObject("Microsoft.XMLHTTP"); }
catch (e) {}
xmlhttp.onreadystatechange = ScreenWrite; 
xmlhttp.open("GET", What, true);
xmlhttp.send(null);
return false;

}

请求转到此页面,带有动态 ID 参数:
http://www.hisfameministries.com/wp-content/themes/Video/list.php?id=44

如果您访问该页面,列表显示正常,但是当您在实时站点上尝试时,服务器会响应请求的数据,但显示它是 404!由于这是一个错误,AJAX 请求无法将数据加载到页面上(或者我假设如此)。

这是现场直播,供参考:
http://www.hisfameministries.com/sermons/

更新: 这是 list.php,根据要求:http://pastie.org/1270724

【问题讨论】:

  • 您提供的 URL 实际上以 HTTP 404 响应代码响应(即使浏览器无论如何都会显示该页面)。您的问题来自 Wordpress 端。它应该固定在那里,而不是在客户端。
  • 与@netcoder 的 cmets 相反,您的 list.php 似乎是您主题中的一个独立文件,而不是 WordPress 文件,所以我认为这不是 WordPress 造成的问题,尽管唯一的方法是告诉将由您更新您的问题并发布list.php 的来源;你能做到吗?
  • 我找到了一个临时修复,但我感觉不太好。 ajax 请求在用获取的数据填充列表之前检查服务器状态是否为 200。我删除了该检查,它又可以正常工作了。
  • 你找到解决方案了吗,我也遇到了同样的问题?

标签: php ajax wordpress response


【解决方案1】:

只针对有同样问题的人(只需花几个小时) 确保您包含的文件的路径正确;

<?php require($_SERVER['DOCUMENT_ROOT'].'/wp-blog-header.php'); ?>

所以,在其后添加一个标头 200 状态。

require_once($_SERVER['DOCUMENT_ROOT'].'/wp-blog-header.php');
header('HTTP/1.1 200 OK');  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 2018-09-20
    • 1970-01-01
    • 2020-08-05
    相关资源
    最近更新 更多