Javascript 未发送JS原型AJAX Post请求

Javascript 未发送JS原型AJAX Post请求,javascript,ajax,servlets,prototypejs,Javascript,Ajax,Servlets,Prototypejs,我试图在我的应用程序中使用prototype将一些json数据发送到我的servlet并对其进行处理。以下是我的ajax请求: var dataToSend = getFormDataAsJSONString(); alert(dataToSend); new Ajax.Request('GetExpenses', { method: 'post', contentType: 'applica

我试图在我的应用程序中使用prototype将一些json数据发送到我的servlet并对其进行处理。以下是我的ajax请求:

            var dataToSend = getFormDataAsJSONString();
        alert(dataToSend);
        new Ajax.Request('GetExpenses', {
            method: 'post',
            contentType: 'application/json',
            postBody: 'data='+dataToSend,
            asynchronous: true,
            onSuccess: function(transport) {
                parseReturnedExpenses(getPeriod(), transport.responseText);
            },
            onFailure: function(req) {
                alert('unable to send ajax post.');
            },
            onComplete: function(req) {
                alert('request completed');
            }
        });
我在doPost()servlet方法中有System.out.println()语句,只是为了查看该方法是否正在被调用,而从未被调用。我还在onfailure和oncomplete函数中输出了打印结果,但我没有看到这两个函数

我的dataToSend字符串看起来不错,所以我不确定我遗漏了什么。我在web.xml文件中定义了GetExpenses Servlet,所以我不确定发生了什么。有人看到我的代码有任何明显的错误吗

我的GET请求工作正常:

    new Ajax.Request("GetExpenses",
        {method: 'get',
            parameters: {'period': period},
            onSuccess: function(transport) {
                var json = transport.responseText.evalJSON();
                parseReturnedExpenses(period, json);
            }});

尝试从POST调用中删除
contentType
,看看这是否会有所不同。是否尝试删除postBody并添加get方法中的参数?是否在同一域中的服务器上发布?