Java 无法获取jquery ajax调用以返回xml
我有个电话:Java 无法获取jquery ajax调用以返回xml,java,jquery,ajax,xml,Java,Jquery,Ajax,Xml,我有个电话: $.get("${pageContext.request.contextPath}/maze/View/${maze}", function(response){drawMaze(response);}); 在jsp中。它呼吁: protected void doGet(HttpServletRequest request, HttpServletResponse response)
$.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,但也不起作用。该函数没有被调用,我想,但我不知道为什么。我现在已经让它工作了,感谢那些指针,如果没有这个线程,我真的不知道从哪里开始。我没想到要在这个项目上与Ajax合作,像往常一样,我很忙。我现在的呼叫如下所示:
<script>
$.ajax( '${pageContext.request.contextPath}/maze/View/${maze}', {
type: 'GET',
dataType: 'xml',
success: function( response ) {
drawMaze( response);
},
error: function( req, status, err ) {
console.log( 'something went wrong', status, err );
}
});
</script>
控制台中有正确的文本。我现在可以继续进行我需要做的处理。未定义响应是一个很大的线索。您的问题可能是呼叫失败,或者您没有将响应推入响应。你确定它不需要JSON吗?请提供更多的JS代码。如果您使用fiddler来检查响应中实际返回的内容,它看起来像您期望的XML吗?我怀疑问题的很大一部分是$。get实际上并没有将响应XML blob传递到处理程序中。启动Chrome Developer工具或Firebug并检查服务器返回的XML是否符合您的预期。我的xmlString方法正在生成我预期的XML。它没有进入函数。我在开发工具中找不到只检查错误的工具。我还没有函数中的代码。我的意图是在基于xml的画布上绘制。我有一个没有参数的调用,并从这个函数中提取,这是有效的,但当我添加参数和$get。。不会返回xml。它是在我的servlet中生成的,这是我目前唯一能确认的。
function drawMaze(response)
{
algoName = $(response).find("algorithm");
console.log(algoName.text());
}