jquery.get and servlet
jquery.get and servlet
我想要一个servlet处理GET请求并返回一个字符串。
非常简化的版本是:
public class handlequery extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text");
PrintWriter out = response.getWriter();
out.println("videoid");
}
}
但是在回调中返回data
(我如下所示检查)是- object XML Document
。
$.get("handleq", function(data, textStatus) {
alert("Done, with the following status: " + textStatus + "." +
" Here is the response: " + data);
});
谁能告诉我为什么数据是object XML Document
而我应该得到videoid
?
据我所知,没有像"text"这样的内容类型,所以它可能默认为XML。
将行改为:
response.setContentType("text/plain");
关于get
的jquery文档说:
成功回调函数传递返回的数据,这些数据将是XML根元素、文本字符串、JavaScript文件或JSON对象,具体取决于响应的MIME类型。它还被传递响应的文本状态。
这意味着servlet返回的数据格式取决于响应的HTTP Content-Type。您正在设置的"text"不是有效的MIME类型。因此,jQuery不会识别这种格式,而会在Javascript端将其解释为XML文档。正确的MIME类型应该是"text/plain"。
试
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/plain");
PrintWriter out = response.getWriter();
out.println("videoid");
out.close();
}
那么你应该收到"videoid"而不是XML文档。
你还应该在jQuery中暗示你正在接收"text"而不是其他任何东西:
$.get("handleq", function(data, textStatus) {
alert("Done, with the following status: " + textStatus + "." +
" Here is the response: " + data);
}, "text");
就其本身而言,text
不是有效的内容类型。我建议你用text/html
代替:
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("videoid");
并在客户端调用$.get()中指定内容类型:
$.get("handleq", function(data, textStatus) {
alert("Done, with the following status: " + textStatus
+ ". Here is the response: " + data);
}, "html");
相关文章:
- 使用angularjs向浏览器发送servlet响应(下载功能)
- 当值更改时,在servlet中自动获取textarea值,无需单击按钮
- Selenium WebDriver and JavaScript change
- servlet中的请求对象,而不是从jsp接收参数值
- JSON分析错误:Java中AJAX、Javascript和Servlet的意外EOF
- PHP and Javascript functions
- Javascript Return and if/else
- 在servlet中提交两个表单
- SetTimeout and clearTimeout in Javascript
- lightbox in html 5 and javascript
- TimelineJS and AngularJS
- 我们如何在互联网断开连接或用户关闭选项卡/浏览器时调用注销servlet
- timeago.js with datatable and PHP
- javascript button ajax and php
- 如何从servlet获取数据到ajax成功
- Ajax and Json with Rails
- 使用Jquery$.ajax将json数据传递给servlet(doPost)
- Combine onload, onresize and onclick
- jquery.get and servlet
- Debugging JavaScript and a servlet