java - 如何使用 ajax 请求从 spring Controller 返回 View ?

标签 java ajax spring

我使用 jquery 发出一个 ajax 请求,这会调用以下 spring Controller :

@RequestMapping(value = "/dialogController", method = RequestMethod.POST)
public String dialogController(Model model, @RequestBody MyClass myclass) {
  myClass.setTitle("SUCCESS");       
  model.addAttribute("myClass",myClass);
  return "dialogContent";  //this resolves to dialogContent.jsp
}

但是我收到以下错误:

org.springframework.web.HttpRequestMethodNotSupportedException: 
Request method 'POST' not supported

如果需要,这里是我使用 jQuery 进行的 ajax 调用:

   jq.postJSON("/dialogController", myClass, function(data) {
      myDialog.html(data);
      myDialog.dialog('open'); 
      //dialog settings previously assigned, 
      //but the success callback function is not reached anyway
    });

编辑 如果我使用,我会得到同样的错误:

jq.ajax({
  type: 'POST',
  url: "/dialogController",
  data:myClass,
  success:  function(data) {            
         previewDialog.html(data);
         previewDialog.dialog('open');
  });

最佳答案

对于国内的观众... 我发现问题是由于 Controller 中定义的方法签名与ajax调用不匹配。我从 Controller 方法中删除了 Model model 参数。然后我也意识到我还必须返回一个新模型和 View ;这是工作代码:

var myJSON  = {"title":"help"}; 
myJSON = JSON.stringify(myJSON);

<c:url var="postAndView" value="/PostJSONMAV" />
...
jQuery.ajax({
    type: 'POST',
    url: "${postAndView}",
    data:myJSON,
    contentType: "application/json",
    success:  function(data) {          
        previewDialog.html(data);
        previewDialog.dialog('open');
    }
});

我更改为 ajax 调用,但 jQuery.postJSON() 可能也能正常工作。下面显示的是新的 Controller 代码,它正确地向模型添加了一个新对象并返回了在对话框中打开的 jsp 页面:

@RequestMapping(value = "/PostJSONMAV", method = RequestMethod.POST)
public  ModelAndView postJSON(@RequestBody MyClass myClass) {
    ModelAndView mav = new ModelAndView();
    myClass.setTitle("SUCCESS");
    mav.setViewName("dialogContent");
    mav.addObject("myClass", myClass);
    return mav;     
}

关于java - 如何使用 ajax 请求从 spring Controller 返回 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7028507/

相关文章:

java - 在 Pyspark 中访问 JavaRDD

java - 时间程序中的计算错误

javascript - 在 javascript 中使用原型(prototype)会对 ajax 调用和异步代码产生负面影响吗?

java - 如何将对象从 View 传递到java函数?

spring - 从另一个模块上下文访问属性文件

Java Stream API 比较数组中的字符串

java - Twitter 查询 API 过滤器在日期范围内不起作用

javascript - 当我点击另一个内容是从数据库生成的div时,如何更改div的内容

javascript - 从 samsclub.com 抓取产品详细信息

javascript - 如何使用 spring mvc 在 jquery ajax 调用中重定向到 View