【问题标题】:404 error with XMLHttpRequest on document that exists存在的文档上的 XMLHttpRequest 出现 404 错误
【发布时间】:2014-04-01 00:01:24
【问题描述】:

当用户单击按钮时,我使用 XMLHttpRequest 将某些内容保存到数据库中。在 localhost 上工作时这似乎有效,但在我启动该站点后,仅发生 404 错误。

Firefox 控制台说:

POST http://mydomain.com/wp-content/themes/minmeme/save.php [HTTP/1.1 404 Not Found 999ms]

但是当我复制那个 URL 并手动打开它时,文件显然存在。

Javascript 代码保存在script.js 并与save.php 放在同一文件夹中:

var ajax = new XMLHttpRequest();
ajax.open("POST",'/wp-content/themes/minmeme/save.php',false);
ajax.setRequestHeader('Content-Type', 'application/upload');
ajax.send(imgurl);

【问题讨论】:

  • "与save.php 放在同一文件夹中" => 在ajax.open 上,您应该只需要使用save.php 而不是完整的/wp-content/themes/minmeme/save.php。 (我认为:))。
  • 我也是这么想的,但是由于某种原因,URL 是http://mydomain.com/save.php。我也尝试将 save.php 文件放在根目录下,但随后浏览器也给出了 404 错误(我认为 Wordpress 搞砸了)。
  • 如果通过浏览器访问URL会发生什么?为什么要设置这个奇怪的请求标头?没有它还能用吗?

标签: javascript php xmlhttprequest


【解决方案1】:

是 WordPress 永久链接结构搞砸了这一切。通过使用自定义永久链接 (%postname%),我无法直接访问 Wordpress 之外的任何 .php 文件。

将永久链接设置为标准,现在服务器会找到文件。错误现在更改为 403.1...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-02
    • 2019-04-21
    • 2015-03-09
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    • 2018-11-02
    相关资源
    最近更新 更多