Java Servlet 总是在 AJAX GET 请求 SERVLET 时返回调用页面的 HTML 代码
Java Servlet always returns HTML code of calling page, upon AJAX GET Request to Servlet
我在Web应用程序的后端使用Tomcat 7 Java Servlets。我面临的问题是,当我使用 jQuery Ajax 执行 HTTP GET 请求时,HttpServletResponse 总是返回调用页面的 HTML 正文,而不是返回所需的数据。
j查询代码:
function perform_ajax(view_name) {
$(function() {
var url = 'get-view-data-by-view-name';
$.ajax({
method: 'GET',
data: {view_name: JSON.stringify(view_name)},
beforeSend: function() {
alert(view_name);
},
success: function(data) {
alert(data);
//console.log(data);
},
error: function(xhr) {
alert("Error: asdasd");
}
});
});
}
Servlet 代码:
public void doGet (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String x = req.getParameter("view_name");
resp.setContentType("application/json");
resp.setCharacterEncoding("UTF-8");
resp.getWriter().write(x);
}
即使我将 Servlet 代码的最后一行替换为:
resp.getWriter().write("aaaa");
注释掉 doGet 函数中的其他所有内容,Servlet 仍然返回调用页面的 Html 正文。
我已经被困在这个上面几个小时了。经历了许多SO问题,尝试了各种方法,例如使用不同的MIME类型,例如普通,但我得到的回应只是呼叫者页面的Html代码。请帮助我找到出错的地方并解决此问题。
我忘了在 ajax 函数调用中传递 url;不知道我怎么会错过它!
function perform_ajax(view_name) {
$(function() {
var url = 'get-view-data-by-view-name';
$.ajax({
url: url, // + Added URL to ajax call
method: 'GET',
data: {view_name: JSON.stringify(view_name)},
beforeSend: function() {
alert(view_name);
},
success: function(data) {
alert(data);
//console.log(data);
},
error: function(xhr) {
alert("Error: asdasd");
}
});
});
}
检查标头,返回获取请求。它必须具有应用程序/json。但浏览器可能会将文本解释为 html。
使用 curl 检查工作。
并返回 JSON 对象而不是字符串,例如:
...
response.setContentType("application/json");
String x = req.getParameter("view_name");
PrintWriter out = response.getWriter();
JSONObject obj = new JSONObject();
obj.put("view_name", x);
out.print(obj);
...
相关文章:
- 如何从ajax调用返回.wrap()元素
- Ajax调用返回当前html页面,而不是请求的文件
- 如何在模式框中显示ajax调用返回的数据
- AngularJS$http.post调用返回502(坏网关)错误
- 有没有更好的方法可以测量从Ajax调用返回数据所需的总时间
- 格式化AJax调用返回的Json,并将其分配给javascript变量
- calling.trigger(“click”),它在ajax调用返回的javascript代码中
- 在异步调用返回之前隐藏页面
- 对php文件的Ajax调用返回该文件中的JS代码,而不是执行它
- 如何在下一次 AJAX 调用中访问从一个 AJAX 调用返回的变量
- jQuery 延迟的 AJAX 调用返回值
- Django Ajax 调用返回 403 错误请求
- 从异步调用返回数组,然后为数组的每个元素返回其他异步调用
- 从函数返回函数而不调用返回的函数
- 当Json Length过长时,对ASP.NET MVC Controller的Ajax调用返回404
- 如何从jQuery中Ajax调用返回的数据中获取对象
- 如果statusCode不是200,那么从http调用返回什么类型的错误对象
- 如何使用jsonp调用返回的数据在Durandal中呈现视图
- 为什么我的ajax调用返回null
- 如何获取ajax调用返回的元素数