我從我的jsp調用了一個Ajax的javascript函數,它反過來應該加載一個servlet進行進一步處理。我從jsp獲取值到ajax,但是servlet沒有被調用。在網上查找&後,我找不到缺失的鏈接。Ajax函數不調用Servlet
這是我的jsp我在哪裏調用AJAX javascript函數:
<display:column title="Merge Print"><a href="#" onClick="printMerge('arg1', 'arg2')">Click Here</a></display:column>
在一個單獨的文件ajax.js,我有以下代碼:
function printMerge(arg1, arg2) {
alert('In printMerge '+arg1, arg2);
new Ajax.Request('servlet/PrintMerge', {
method: 'post',
parameters: { arg1: arg1.value, arg2: arg2.value },
onSuccess: function(transport) {
var response = transport.responseText || "no response text";
if(response =='success') {
alert('RESPONSE: SUCCESS');
reloadPage();
} else {
alert('RESPONSE: ERROR');
},
onFailure: function() { alert('FAILURE'); }
});
}
在第一次警報,這兩個參數顯示正確。因此,jsp正確地調用該函數,並且參數正常傳遞。然而,這個過程在那裏停止,並且它永遠不會進入'PrintMerge'servlet進行進一步處理。
這裏是PrintMerge的servlet:
public class PrintMerge extends HttpServlet {
private static final long serialVersionUID = 1L
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String resp = serviceCall;
response.getWriter().write(resp);
}
}
這裏是我的web.xml:
<servlet>
<servlet-name>PrintMerge</servlet-name>
<servlet-class>com.servlet.PrintMerge</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>PrintMerge</servlet-name>
<url-pattern>/servlet/PrintMerge</url-pattern>
</servlet-mapping>
類似的配置正在爲其他場景。但是,我覺得我缺少一些東西,因爲ajax函數沒有訪問servlet。
讓我知道是否可以提供更好的可視化問題。提前致謝。
控制檯中的錯誤?請求是否被刪除?它在網絡標籤中顯示什麼? – epascarello
控制檯沒有錯誤。當我嘗試調試時,它沒有到達servlet。 –
那麼網絡選項卡顯示什麼?請求是否出去?錯誤處理程序是否被觸發?你看過這個方法的論點,看看他們說了什麼嗎? – epascarello