2012-06-28 84 views
8

嗨我一直在試圖對JSP頁面進行ajax調用。這是一段JS功能。jQuery ajax調用「未找到」錯誤

<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?

+0

首先,jsp/common/myJavascriptPage.jsp返回什麼? – TNC

+0

你可以嘗試在你的調用中將'url'更改爲'「/jsp/common/myJavascriptPage.jsp」嗎? – MilkyWayJoe

+0

我只是返回一段文字。它有一個嵌入到它的Java代碼。我使用'response.getWriter()的println(myResponse);' – Leo

回答

13

請注意,我正在計算相對於webapp目錄的JSP文件位置。

這是你出錯的地方。

AJAX從客戶端的Web瀏覽器執行,這意味着它不是相對於服務器上的任何東西。

如果您要在網頁瀏覽器中打開該頁面,您會去哪裏?

這就是你希望你的請求URL的地方。

編輯:我明確沒有解釋得這麼好,所以這是另一回事!

比方說,我有一個儲存像這樣我的服務器上的文件:

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

如果我想通過公開訪問的URL訪問這個資源,也不會是相同的上面的文件路徑。它可能類似common/myFile.jsp或甚至可能是common/myFile

如果是這種情況,那麼我必須使用可公開訪問的網址來發送一個AJAX請求到該URL。

+1

我需要留在同一頁上。在JSP只是有嵌入在這個Java代碼與文本,這就需要在index.jsp文件進行更新返回。 – Leo

+0

很好! AJAX,簡單來說,只是意味着你正在做一個HTTP請求,不擔心,當它回來。這與在瀏覽器中訪問頁面沒什麼兩樣。發送請求時,您不會被重定向到該頁面或以其他方式。 –

+0

好的。所以URL必須保持爲「index.jsp」。如果是,那麼我如何調用JSP頁面來檢索它的響應? – Leo

1

看起來您的網址不完整。導致錯誤的最可能原因是您沒有完全限定的URL。

嘗試指定完整路徑,看看是否有幫助。

0

請在頁面未找到錯誤上檢查以下兩點。我也面臨同樣的問題。我的情況我正在調用一個json文件來加載數據。糾正下面的更正後,它開始正常工作。

(1)在腳本exeutes

(2)添加以.json(文/純)MIME擴展IIS服務器中的文件路徑(URL)相對應的當前頁面。