从Ajax调用的Servlet获取响应

Getting response from Servlet on Ajax call

本文关键字:获取 响应 Servlet Ajax 调用      更新时间:2023-09-26

我正在做一个servlet调用从我的ajax。我如何能得到响应在我的ajax函数作为一个变量。

 function myajaxcall(name) {
     var url = "/myServlet?name="+name
     $.ajax({
         type: 'GET',
         url: url,
         success: function() {
            console.log("Success");
            // also i want to get response from header which i have set in my servlet class . and call a another javascript method
    // call a another javascript method by passing the response from servlet .
         }
         });
}

Servlet代码为:

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
String code=request.getParameter("name")+"Hi";
 response.addHeader("code", code);

}

现在我想在ajax调用中使用我的"code"变量,以便我可以将其发送到另一个javascript方法..

正如jQuery文档中概述的那样,jQuery的$.ajax()函数的success设置是一个函数或函数数组,它最多有三个参数(并且在AJAX请求返回成功响应后被调用时传递三个参数):

成功

类型:函数(任何数据,字符串textStatus, jqXHR)

可以看到,第三个参数类型为jqXHR,具有getResponseHeader()函数。

像这样的应该工作(尽管未经测试):

$.ajax({
    type: 'GET',
    url: url,
    success: function(data, status, xhr) {
        var code = xhr.getResponseHeader('code');
        yourFunction(code);
        console.log("Success");
    }
});