java - 如何从 servlet 获取 ajax 调用的响应

标签 java jquery ajax servlets

我使用 ajax 调用了 servlet。

        $.ajax({
        type: "post",
        url: "FileUploadServlet", //this is my servlet
        dataType: 'json',
        data:{"myJsonString":"myJsonString","aadhar":"aadhar"},
        //data: "myJsonString" ,
        beforeSend: function (request)
        {
            request.setRequestHeader("myJsonString", myJsonString);
            request.setRequestHeader("aadhar", aadhar);

        },
        success: function(response){
            // $('#uidrespon').html(response); 
            //alert(uidrespon);
        } 
        });

我想从我的 servlet 将响应传递给 ajax。为了从 servlet 发送响应,我正在使用此代码,但我没有通过 ajax 获得响应

         protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("application/json;charset=utf-8");
    PrintWriter out = response.getWriter();
    System.out.println("In doPost");

    String stat="";
    String member_Id="111111111";
    String session_id="121233";



    try{
        System.out.println("In try--------");
        String strrs = request.getHeader("myJsonString");
        String uid_val = request.getHeader("aadhar");
        System.out.println("Uid value..."+uid_val);
        if(strrs!= null){
             stat = "Uploaded Successfully";
             System.out.println("upload status"+stat);
        }else if(strrs == null){
            stat = "Uploaded Failed";
             System.out.println("upload status"+stat);
            request.setAttribute("status", stat);
        }   

        byte[] b = strrs.getBytes();
        System.out.println("In bytes---"+b);
        String encodedString = Base64.encodeBase64(b).toString();
        System.out.println("In image---\n"+encodedString);

         uid_webservice tes = new uid_webservice();

         String src= tes.authenticate(member_Id,uid_val,encodedString,session_id);

         System.out.println("Source------"+src); // Getting return value value from uid_webservice 

         request.setAttribute("uidrespon", src);

         response.setContentType("text/plain");  
         response.setCharacterEncoding("UTF-8"); 
         response.getWriter().write(src);

谁能帮帮我......提前致谢

最佳答案

$.ajax({
    type: "post",
    url: "FileUploadServlet", //this is your servlet
    dataType: 'html',
    data:{
        myJsonString:"myJsonString",
        aadhar:"aadhar"
    },
    success: function(response){
         $('#uidrespon').html(response); 
        //alert(uidrespon);
    } 
    });

Servlet 端:

request.setAttribute("src", src); 
response.setCharacterEncoding("UTF-8"); 
response.getWriter().print(src);

我认为它一定有效。

关于java - 如何从 servlet 获取 ajax 调用的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24487189/

相关文章:

javascript - ajax 请求正在等待并行请求

java - 如何使用 Struts 2 设置 Ajax?

javascript - 在另一个调用正在使用 php (Laravel) 执行长时间作业时创建一个 ajax

java - Maven 在 Docker 容器内下载时挂起

java - 从Weka中的AdaBoostM1获取实例权重

javascript - 当窗口小于 ~650px 时,Owl Carousel 不居中

jquery - 如何在 jQuery 日期选择器中添加禁用日期的工具提示?

java - Mac 上 Eclipse 的键盘设置

java - Jsoup 在第一个元素之后选择元素

javascript - 删除图像会导致错误 undefined method `count' for nil :NilClassh Ruby on Rails