Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t在Servlet中访问AJAX请求参数_Java_Jquery_Ajax_Servlets - Fatal编程技术网

Java Can';t在Servlet中访问AJAX请求参数

Java Can';t在Servlet中访问AJAX请求参数,java,jquery,ajax,servlets,Java,Jquery,Ajax,Servlets,我第一次尝试使用Servlet实现AJAX,以下是jQuery AJAX代码: $.ajax({ type : 'POST', url : '/myServlet', contentType : 'application/octet-stream; charset=utf-8', success : function(result) {alert(result)}, processData : false, data : authResult['c

我第一次尝试使用Servlet实现AJAX,以下是jQuery AJAX代码:

$.ajax({
    type : 'POST',
    url : '/myServlet',
    contentType : 'application/octet-stream; charset=utf-8',
    success : function(result) {alert(result)},
    processData : false,
    data : authResult['code']
});
下面是servlet:

public class Authorize extends HttpServlet {
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
        response.setHeader("Cache-Control", "no-cache");
        response.setHeader("Pragma", "no-cache");
        Date currentTime= new Date();
        String message = String.format("Currently time is %tr on %tD.",currentTime, currentTime); //printing this, echos in the ajax "success" function
        response.getWriter().print(request.getParameterMap().toString()); //this, gives me blank Map "{}" 
    }
}

现在,请求参数到哪里去了?或者如果我错了,如何正确访问/发送它们

在我的例子中,响应参数是如何发送到AJAX的?以及如何以JSON格式发送它们


很抱歉,如果我的问题看起来很琐碎,但是我在网上搜索了很多,还没有找到好的资源。

您正在发送一个
POST
请求,因此您的参数在请求正文中。如果要将其作为简单参数访问,请使用
GET

$.ajax({
    type : 'GET',
    url : '/myServlet',
    contentType : 'application/octet-stream; charset=utf-8',
    success : function(result) {alert(result)},
    processData : false,
    data : authResult['code']
});
并在servlet中使用
doGet
而不是
doPost
方法


如果您需要post:请阅读请求正文并进行解析。

我建议您查看一下。它只是让事情变得简单,特别是在通过AJAX和JSON与javascript代码通信时。

只需删除这一行即可

contentType:'应用程序/八位字节流;字符集=utf-8'


你确定数据是由js发送的吗?您可以尝试使用以下数据:{paramName:authResult['code']}吗?您的数据未设置为名称-值对。尝试访问请求正文。@Tylor告诉我怎么做@ianaz谢谢,它现在以Json的形式发送,现在如何在js中以Json的形式接收它们?将contentType设置为application/Json。服务器应自动将其转换为参数:)