0
我有一個電話:不能讓我的jQuery Ajax調用返回XML
$.get("${pageContext.request.contextPath}/maze/View/${maze}",
function(response){drawMaze(response);});
在JSP。它調用:
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
System.out.println("Got here");
URL url = new URL(request.getRequestURL().toString());
String [] path = url.getPath().split("/");
mazeJPA.Maze maze = mazes.getMaze(Integer.parseInt(
path[path.length - 1]));
System.out.println(maze.getId());
response.setContentType("text/xml;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println(xmlString(maze));
out.flush();
}
和printlns打印我期望在Eclipse中的控制檯。我有一個JavaScript函數
function drawMaze(response)
定義在一個單獨的腳本文件中,但我無法獲取xml來處理它。在JavaScript控制檯中的錯誤是:
ReferenceError: response is not defined
get stack: function() { [native code] }
message: "response is not defined"
set stack: function() { [native code] }
__proto__: Error
我在這裏不理解什麼?
[編輯] 這是在我的JSP中的JS:
$.get("${pageContext.request.contextPath}/maze/View/${maze}",
function(response){drawMaze(response);});
,目前我只有定義的功能。我正在嘗試編寫XML,但那也不起作用。該函數沒有被調用,我認爲,但我不明白爲什麼。
'迴應沒有定義'是一個很大的線索。您的問題很可能是通話失敗,或者您沒有將響應推送到「響應」中。你確定它不指望JSON?請提供更多的JS代碼。 – spikeheap
如果您使用fiddler來檢查響應中實際返回的內容,它看起來像是您期望的XML嗎? (我懷疑問題的很大一部分是$ .get()實際上並不是將響應XML blob傳遞給您的處理程序。) –
開始的一個好地方是啓動Chrome Developer Tools或Firebug並檢查XML從服務器返回,看看它是否是你期望的。 – spikeheap