【问题标题】:jQuery ajax call and a 404 errorjQuery ajax 调用和 404 错误
【发布时间】:2012-02-24 11:22:38
【问题描述】:

我正在尝试进行 jquery ajax 调用,但遇到 404 错误

这是我的代码

jQuery.ajax({
    type: "POST",
    url: "/wp-content/themes/mytheme/ajax_functions.php",
    data: "sec=load_team&year=2010",
    success: function(msg){
        jQuery("#update_div").html(msg);
    },
    error: function(msg){
        console.log(msg.statusText);
    }
});

该网站并非对所有人可见,我更改了我的主机文件:

xx.xx.xx.xx www.mydomain.com

Chrome 检查员说:

发布 http://www.mydomain.com/wp-content/themes/mytheme/ajax_functions.php 404(未找到)

但是如果我在地址栏中复制/粘贴该 URL,它就存在...

【问题讨论】:

  • 可能是 ajax_functions.php 在有 POST 请求时创建 404 错误。当您在浏览器上加载它时,它只是一个 GET 请求。
  • 将类型更改为“GET”,看看是否有效,如果有效,请检查服务器拒绝接收 POST 请求的原因

标签: jquery ajax wordpress


【解决方案1】:

在 ajax_functions.php 我有:

要求('../../../wp-blog-header.php');

我改成了:

要求('../../../wp-load.php');

现在它工作正常,但我不知道为什么不使用 wp-blog-header 因为它与 wp-load.php 位于同一文件夹中

【讨论】:

    【解决方案2】:

    ajax_functions.php 页面是否与托管 Javascript 的页面位于同一域中?

    您可能会因为 XSS 而被阻止,在这种情况下,您需要在 AJAX 选项中指定 dataTypejsonp

    否则,请确保 URL 实际处理 POST 请求。如果您需要这方面的帮助,请显示该页面的 PHP 代码。

    【讨论】:

      【解决方案3】:

      尝试将完整的网址“http://www.mydomain.com/wp-content/themes/mytheme/ajax_functions.php”放在 url: 参数中,而不是依靠模块/浏览器来确定域。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-21
        • 2010-11-05
        • 2013-05-30
        • 2014-11-22
        • 2014-01-23
        • 1970-01-01
        • 2015-12-14
        相关资源
        最近更新 更多