【问题标题】:jQuery ajax call "Not Found" errorjQuery ajax 调用“未找到”错误
【发布时间】:2014-11-12 14:13:02
【问题描述】:

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

【问题讨论】:

  • 首先,jsp/common/myJavascriptPage.jsp 返回什么?
  • 您可以尝试在通话中将url 更改为"/jsp/common/myJavascriptPage.jsp" 吗?
  • 我只是返回一段文字。它嵌入了一个java代码。我正在使用response.getWriter().println(myResponse);
  • @MilkyWayJoe 刚试过。没用。

标签: javascript jquery ajax


【解决方案1】:

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

这就是你出错的地方。

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

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

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

编辑:我显然解释得不够好,所以再试一次!

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

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

如果我想通过一个可公开访问的 URL 访问这个资源,它与上面的文件路径就不一样了。它可能类似于common/myFile.jsp 甚至可能是common/myFile

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

【讨论】:

  • 我需要保持在同一页面上。 JSP 只是嵌入了一个 Java 代码,它返回一个文本,需要在 index.jsp 文件中更新。
  • 没关系! AJAX,简单来说,只是意味着您正在发出一个 HTTP 请求,而不用担心它何时返回。这与在浏览器中访问页面没有什么不同。发送请求后,您将不会被重定向到该页面或其他页面。
  • 好的。所以 URL 必须保留为“index.jsp”。如果是,那么我如何调用 JSP 页面来检索它的响应?
  • 您所做的就是将您拥有的当前 URL (jsp/common/myJavascriptPage.jsp) 替换为您尝试从 Web 浏览器访问它时要访问的 URL。即类似http://mydomain.com/myJavascriptPage.jsp.
  • 对此还不是很清楚。如果我想加载其他页面,为什么需要使用 Ajax?另外,即使 jQuery ajax API 网站上的示例似乎也没有在 url 中包含域。 Check
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-22
      • 2011-09-30
      • 2012-07-22
      相关资源
      最近更新 更多