【问题标题】:The request sent by the client was syntactically incorrect - Spring mvc客户端发送的请求在语法上不正确 - Spring mvc
【发布时间】:2013-01-07 10:43:05
【问题描述】:

我在向 Spring MVC 中的控制器提交值时遇到问题。

当我用href 调用控制器时,它被提交给控制器方法,我提交了以下方式:

href='CIMtrek_Compliance_Daily_Shipments_Case_Pack_Calendar?date=<%=formatedDate%>'

但是当我通过 javascript 提交相同的内容时,我得到了这个异常 The request sent by the client was syntactically incorrect.

这就是我通过 javascript 提交的方式:

function getCasePackCalendar(date) {
     viewName ="CIMtrek_Compliance_Daily_Shipments_Case_Pack_Calendar?date="+date+" ";
     global.forms[0].action = viewName;
     global.forms[0].method = "GET"
     global.forms[0].submit()
}

这是我的控制器方法:

@RequestMapping(value = "/CIMtrek_Compliance_Daily_Shipments_Case_Pack_Calendar", method = RequestMethod.GET)

        public ModelAndView  CIMtrek_Compliance_Daily_Shipments_Case_Pack_Calendar(@RequestParam("date") String date,HttpServletRequest request) {
            String[] data = new String[] {date};
        HttpSession session = request.getSession(true);
        String UserName = "";
        if(session.getAttribute("CIMtrek_UserName")!=null)
         UserName = session.getAttribute("CIMtrek_UserName").toString();
        ViewContent vc = new ViewContent();
        String HTML = vc
        .getContent(
        "com/cim/xml/CIMtrek_Compliance_Daily_Shipments_Case_Pack_sql.xml",
        "com/cim/xsl/view.xsl", "1 and 10","1","","0",UserName,data,"");

        List<String> ls = new ArrayList<String>();
            ls.add(HTML);
            logger.info("Welcome CIMtrek_Visitors_By___Unipart_Div__Date__Host___Visitor!");
            Map<String, Object> model = new HashMap<String, Object>();

        model.put("list", ls);
        model.put("iSPost", "N");

        logger.info("Welcome CIMtrek_Compliance_Daily_Shipments_Case_Pack!");

        return new ModelAndView("view", model);

        }   

这就是我的形式

<form id="CIMtrek_Compliance_Daily_Shipments">
                                               <input type="hidden" id="CIMtrek_selectedIDs" name="CIMtrek_selectedIDs" value="" />
                                               <input type="hidden" id="CIMtrek_xmlData" name="CIMtrek_xmlData" value="" />
                                               <input type="hidden" id="CIMtrek_formName" name="CIMtrek_formName" value="CIMtrek_Compliance_Daily_Shipments" />
                                             </form>

可能是什么问题。

请帮我找到它。

最好的问候。

【问题讨论】:

  • 请使用一些调试工具(例如 chrome F12->Network 选项卡,或 Firefox Firebug 来查看来自浏览器的请求)在这种情况下,您将表单参数放入视图名称中(甚至添加客户端js中的参数后引号中的一些奇怪的空格符号) - 它似乎不正确。我建议您制作一个单独的控制器方法来处理您的表单,但无论如何这需要大量阅读。在这种情况下,您的表单被错误地序列化,
  • 将此作为答案。我会将其标记为已接受,以便对其他人有所帮助。问题是我们在通过java脚本提交页面时不应该附加任何值,我们可以在链接中附加参数但在使用javascript提交页面时不能附加任何值
  • 这可能无关紧要,但您可能希望在此处从您的代码中删除公司特定信息。

标签: java spring spring-mvc


【解决方案1】:

请使用一些调试工具(例如在 Chrome 中使用 F12->Network 选项卡,或使用 Firefox Firebug 来查看来自浏览器的请求)在这种情况下,您将表单参数放入视图名称中(甚至添加一些奇怪的参数后引号中的空格符号)在您的客户端 js 中 - 它似乎不正确。

我建议您制作一个单独的控制器方法来处理您的表单。

在这种情况下,您的表单被错误地序列化(实际上正确的 html 表单序列化/参数传递由多个 RFC 规定)。

【讨论】:

    猜你喜欢
    • 2013-03-21
    • 1970-01-01
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-31
    • 2013-12-30
    相关资源
    最近更新 更多