【问题标题】:Spring MVC send a String from the client to controller using DOJOSpring MVC 使用 DOJO 将字符串从客户端发送到控制器
【发布时间】:2012-08-25 15:23:24
【问题描述】:

我的客户端上有以下代码

    var value = {"userId":form.userId.value};

var xhrArgs = {
    url : messageUrl,
    handleAs : "text",
    content: value,
    load : displayMessages,
    error : function(error) {
        dojo.byId("displayArea").innerHTML = "Error aquiring messages";
    }
};
dojo.xhrGet(xhrArgs);
}

在我的服务器端控制器代码

@RequestMapping(value = "/getMessages.htm", method = RequestMethod.GET)
public @ResponseBody String showMessageTable(@RequestParam("userId") String userId,ModelMap params)
{

我收到 400 错误提示

客户端发送的请求语法错误()

有人可以解释我做错了什么吗?我已经用 firebug 测试了 dojo 代码,并且该值似乎传递得很好。谢谢!

【问题讨论】:

  • 您可能需要检查您的 Accept 标头,它应该是 application/json
  • @BijuKunjummen 即使我在移动文本,我也必须这样做吗?不是 json 对象吗?
  • 哦,好吧,没有意识到,你已经用@ResponseBody注释了响应,然后Spring会尝试根据accept header将响应转换为json或xml。只需删除@ResponseBody,它就会尝试根据您从showMessageTable 方法返回的内容来解析视图(比如jsp)。
  • @BijuKunjummen 感谢您的回复! ResponseBody 注释是我刚刚添加的,用于测试目的。即使我没有它,它也不会给我 JSP 页面。所以我在客户端的代码看起来不错?我仍然收到状态 400 错误。还要注意。当我输入网址时,dojo 在地址栏中发回的确切网址会将我带到一个新页面并显示数据。所以我知道 MVC 正在工作。
  • 只是为了确认,当您发送请求时,使用 DOJO,它是普通的 POST 还是 GET,其中 userId 字段是普通的请求参数,而不是 json。

标签: javascript jakarta-ee spring-mvc dojo


【解决方案1】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-02
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 2020-08-08
    • 2016-09-11
    • 1970-01-01
    相关资源
    最近更新 更多