jQuery ajax调用“Not Found”错误

时间:2012-06-28 19:04:25

标签: javascript jquery ajax

您好我一直在尝试对JSP页面进行ajax调用。这是JS函数的一部分。

<script>
$(function(){

  function myAjaxCall() {
     $.ajax({
        type: "post",
        url: "jsp/common/myJavascriptPage.jsp",
        dataType: "text",
        success: 
            function (result) {
               alert("Got the result: " + result);
            },
            error: function (xhr,status,error) {
               alert("Status: " + status);
               alert("Error: " + error);
               alert("xhr: " + xhr.readyState);
            },
            statusCode: {
               404: function() {
                   alert("page not found");
               }
            }
        });
   }
 });
 </script>

我经常找不到文件,即使JSP存在于提到的URL中。请注意,我正在计算相对于webapp目录的JSP文件位置。

我尝试使用普通的AJAX调用(没有jQuery),但结果却出现了同样的错误。

你能帮我理解为什么它找不到jsp吗?

3 个答案:

答案 0 :(得分:14)

  

请注意,我正在计算相对于webapp目录的JSP文件位置。

这是你出错的地方。

AJAX正在从客户端的Web浏览器执行,这意味着它与服务器上的任何内容都不相关。

如果您要在网络浏览器中点击该页面,那么您将去哪里?

您希望请求网址的位置。

编辑:我显然没有足够好地解释这一点,所以还有另外一步!

我们说我的服务器上有一个文件存储如下:

my_website/src/webapp/jsp/common/myFile.jsp

如果我想通过可公开访问的网址访问此资源,则它与上面的文件路径不同。它可能类似于common/myFile.jsp,甚至可能是common/myFile

如果是这种情况,那么我必须使用可公开访问的URL 才能将AJAX请求发送到该URL。

答案 1 :(得分:1)

您的网址似乎不完整。导致错误的最可能原因是您没有完全限定的URL。

尝试指定完整路径并查看是否有帮助。

答案 2 :(得分:0)

请在“找不到页面”错误上检查以下两点。我也遇到了同样的问题。我的情况是我调用json文件来加载数据。在纠正了以下更正后,它开始正常工作。

(1)文件路径(URL)应该相对于脚本执行的当前页面

(2)在IIS服务器中添加.json(text / plain)MIME扩展名。