jQuery $ .load()在个人网络服务器上运行,但不是生产网络服务器

时间:2009-10-21 04:11:25

标签: javascript jquery post http-status-code-405

编辑:我发现这是405错误。因此,Web服务器和处理POST方法都会发生一些事情。

我发生了一件奇怪的事。我的测试环境和生产环境都有相同的javascript代码。

测试环境起作用,而生产则不起作用。这是我的相同代码。

<html>
    <head>
      <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
      <script type="text/javascript" src="http://cdn.jquerytools.org/1.1.2/jquery.tools.min.js"></script>
      <script type="text/javascript" src="./js/jquery.scrollTo-min.js"></script>
    </head>
    <body>
      <div class="content" id="content"> 
        <a id="changeText" href="test.html">Change</a>
      </div>

      <script>
         $(document).ready(function() {

            $("#changeText").live('click', function(){

                var url = $(this).attr("href");

                $("#content").load(url, {var1:Math.random()*99999},function(){

                     alert(url + " loaded");
                });

                $.scrollTo("0%", 400);

              return false;
            });
        });
     </script>
    </body>
</html>

两种环境均报告

alert(url + " loaded");

正在发生。但只有我的测试环境实际显示了变化。

生产网络服务器在正确的位置提供“test.html”。

2 个答案:

答案 0 :(得分:0)

确定生产服务器上是否包含scrollTo脚本(或者我是否误解了change的含义)?也许尝试一个根相对路径而不是'./js'?我会检查Firebug的脚本选项卡以确保它被包含在内。

答案 1 :(得分:0)

405错误意味着您发送到的URL不希望您以这种方式发送数据。例如,如果您要向仅设计用于处理GET请求的URL发送POST请求,则会收到此错误。

我的猜测是,您运行的任何服务器都设置为不允许将POST数据发送到扩展名为.html的页面,从而导致您看到的错误。尝试将扩展名更改为.php,.aspx等,看看是否有帮助。