无法使用AJAX将json数据发送到Java servlet

无法使用AJAX将json数据发送到Java servlet,java,ajax,servlets,aem,Java,Ajax,Servlets,Aem,我试图将datatable的json数据和用户输入的电子邮件传递给我的Javaservlet。我得到状态200,但没有数据响应。我这里有我的AJAX代码: $.ajax({ url: "/bin/abc/sendrohssearchresult", type: "POST", contentType: "application/json", data:{ "email": email,

我试图将datatable的json数据和用户输入的电子邮件传递给我的Javaservlet。我得到状态200,但没有数据响应。我这里有我的AJAX代码:

$.ajax({
  url: "/bin/abc/sendrohssearchresult",
  type: "POST",
  contentType: "application/json",
  data:{
     "email": email,
     "emailSubject": emailSubject
  },
  success: function(status){
      console.log("success",status);
  },
  error:function(error){
      console.log("error",error);
  },
})
和我的Java servlet:

@Component(service= Servlet.class,
        property={
                Constants.SERVICE_DESCRIPTION + "=Send Email of RoHS Search Results",
                "sling.servlet.methods=" + HttpConstants.METHOD_POST,
                "sling.servlet.paths="+ "/bin/abc/sendrohssearchresult"
        })
public class RohsEmailServlet extends SlingAllMethodsServlet {

    @Override
    protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException {
        String email = request.getParameter("email");
        String emailSubject = request.getParameter("emailSubject");
    }

}

我已经尝试了在stackoverflow上找到的其他解决方案,比如JSONify数据,remove dataType:json,以及添加contentType:application/x-www-form-urlencoded;字符集=UTF-8;但结果还是一样。我正在使用AEM。

正如@rakhi4110提到的,我需要添加
response.getWriter()
,以便接收数据响应。所以我补充说:

response.getWriter().write("Success Data");

所以您不会在处理程序方法中向响应写入任何内容。(值得一提的是,直接处理servlet是非常低级的,我强烈建议使用一个合理的框架,如Spring MVC或Micronaut。此外,您需要阅读有关HTTP事务的基础知识,因为“正文内容”和“请求参数”是不可互换的。)@chrylis cautiouslyoptimistic-我应该在我的问题中提到这一点,但我使用的是Adobe Experience Manager(AEM),如果servlet的代码是整个代码,那么您在响应中没有收到任何内容是有意义的,因为您没有在servlet中发送任何响应。添加一个记录器,查看email和emailSubject中的值是否通过servlet传递。如果是,则使用PrintWriter对象进行响应,该对象可以通过
response.getWriter()
获得。由于您使用的是POST方法,请确保CSRF筛选器和referer筛选器没有阻止您的请求(以防请求未到达servlet)@rakhi4110谢谢!我现在明白了。