【问题标题】:ajax call to a file goes through the first time, gets a 404 error the second time对文件的ajax调用第一次通过,第二次得到404错误
【发布时间】:2012-10-10 04:04:19
【问题描述】:

我在使用 jQuery post 的函数时遇到了一些问题。该函数应该自己运行几次然后停止,过去它已经成功地完成了。现在发生的情况是,它第一次运行该函数时,php 脚本执行得很好。当它再次尝试自行运行时,我收到 404 错误。 这是javascript函数:

function ajax_call(senddata){
    $.post("/script.php", senddata,
        function(data) {
            if(data.pointer != "done"){
                setTimeout(ajax_call(data), 100);
            }
        }, "json");
}

php文件的输出为:

{"pointer": "1234"}

我正在编写的 wordpress 插件中发生错误并显示为: POST http://xxxxx.local/script.php 404(未找到)-load-scripts.php

正如我所说,它第一次起作用。 php 文件运行没有错误,因此该文件存在,并且我在函数中正确调用它。它在过去一直有效,我已将两个脚本恢复到我知道它有效的程度。如果有人对导致这种情况的原因有任何想法,将不胜感激。谢谢你。

【问题讨论】:

  • 这不可能是服务器端问题,除非 php 脚本使用 cookie 并计算特定 ips/网站发出的请求并仅在第一次请求后阻止它们。除非是这种情况,否则您需要完成客户端编码。并请张贴相关网站的链接。
  • 是否有任何其他服务器端问题可能导致此问题?我已将文件上传到实时站点,那里一切正常。我会发布一个链接,但它都在 wordpress 网站的后端。
  • 还有更多可能,但可以忽略。例如,服务器在第一个请求后将您列入黑名单。但是,当第一次请求成功时,为什么它会回复 404 错误?第一个请求在服务器的算法中将您突出显示为机器人或站点爬虫。还有一些其他的,但让他们毫无意义的是,你被允许提出第一个请求。请求之间是否更改了 ip?如果不是,则故障出在客户端脚本上。
  • 如果您可以链接相关网站,我会发送一些虚假的帖子请求,并检查我是否受到同样的对待。

标签: php javascript jquery ajax wordpress


【解决方案1】:

我不认为你的 JS 有什么问题。我要做的是在 IE 中使用 firebug 或 F12 来查看网络上发生的事情(网络选项卡)。检查请求和响应的详细信息,并确保一切都有意义。

之后,我会检查服务器日志,看看您是否可以看到有关该 404 请求的任何信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-27
    • 1970-01-01
    • 2014-02-06
    相关资源
    最近更新 更多