Spring控制器映射问题

时间:2013-11-20 08:56:55

标签: javascript jquery ajax json spring-mvc

考虑到我在javascript中有一个声明为

的变量
var oData = {
            options: []
    };

现在,我有另一个javascript变量需要将早期变量作为其参数之一。像这样,

var qData = {
            vara:$("#id-box").val(),
            varb: oData
    };

我有一个Spring控制器,它将第二个变量作为@RequestBody param接受,控制器定义如下,

@RequestMapping(value = "url", method = RequestMethod.POST)
public
@ResponseBody
void addQData(@RequestBody AClassDTO dtoObject)
{
    logger.debug("Question > " + questionData.getQuestionString());
}

我将 AClassDTO 定义如下,

public class SurveyQuestionUploadDTO {
private String vara;
private List<AnotherClassDTO> varb= new ArrayList<AnotherClassDTO>();

请注意,我没有在 varb 中传递任何数据,并且数组为空。我使用 json2.js ,因此使用 JSON.stringify(qData)来制作json格式。

以下是完整的ajax部分,

$.ajax({
        type : "post",
        url : "url",
        data: JSON.stringify(qData),
        dataType:'json',
        cache : false,
        beforeSend : function(xhr) {
            xhr.setRequestHeader("Accept", "application/json");
            xhr.setRequestHeader("Content-Type", "application/json");
        },
        success : function(response) {
        },
        error : function(xhr) {
            console.log("Sorry, there was a problem! " + xhr.status);
        },
        complete : function() {
            console.log("Request complete");
        }
    });

现在遇到我的问题。如果我使用ajax调用指定内容类型,则在 beforeSend()中,我会收到 400 - 错误请求错误

如果我没有指定内容类型,我会收到 415 - 不支持的媒体类型错误

有谁能告诉我我做错了什么?我是ajax和json的新手。

0 个答案:

没有答案
相关问题