簡體   English   中英

AJAX 未收到來自 servlet 的響應

[英]AJAX not receiving response from servlet

我有一個 AJAX 向 servlet 發送 POST。 Servlet 進行一些計算並返回響應。 AJAX 成功函數讀取響應並執行某些操作。

AJAX 調用

$.ajax( {
     type: "POST",
     url: "/bin/path/to/Servlet",
     data: $(this).serialize(),
     dataType: "html",
     success: function(responseValue) {
         if(responseValue == '200') {
              // Do something
          }else {
              console.log("it is not 200");
          }
     },
     error: trialForm.trialError
     }).done(function(status) {
             $(trialForm.submitButton).show();
             $(trialForm.loader).hide();
     });
}

SERVLET

protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) {
     response.setContentType("text/html");    

     URL url = new URL("www.apriurl.com");
     HttpURLConnection conn = (HttpURLConnection) url.openConnection();
     conn.setDoOutput(true);
     conn.setRequestMethod("POST");
     conn.setRequestProperty("Content-Type","application/json");
     conn.setRequestProperty("Authorization","XXXXZZZZ " + strSig);
     conn.setRequestProperty("Accept","application/json");
     conn.setRequestProperty("ZZZZZ",clientID);

     OutputStream os = conn.getOutputStream();
     os.write(inputParameters.getBytes());
     os.flush(); 

     System.out.println(conn.getResponseCode());
     response.getWriter().write(conn.getResponseCode());
}
  • responseValue 是 java 類中使用的變量。
  • 它具有正確的價值。 在 sys out 執行后,我看到在日志文件中打印的值
  • 響應只是一個亂碼的問號 (?)。 我控制台記錄了它。 我猜它必須對數據類型做些什么。 我嘗試了其他幾種類型,但無法弄清楚。 任何幫助表示贊賞。

這是write (int)而不是write (String)所以如果你write(200)它發送的ascii值200

嘗試將200作為字符串發送

作為

response.getWriter().write(String.valueOf (conn.getResponseCode()));

https://docs.oracle.com/javase/7/docs/api/java/io/PrintWriter.html#write(int)

公共無效寫(int c)

寫入單個字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM