8

您好我一直在尝试对 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>

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

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

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

4

3 回答 3

14

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

这就是你出错的地方。

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

如果您要在网络浏览器中访问该页面,您会去哪里?

这就是您希望请求 URL 所在的位置。

编辑:我显然没有很好地解释这一点,所以再试一次!

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

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

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

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

于 2012-06-28T19:07:56.253 回答
2

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

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

于 2012-06-28T19:07:46.357 回答
0

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

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

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

于 2014-11-12T06:01:03.987 回答