我正在为应用程序使用Spring MVC和Spring Security。我们正在使用spring表单标签来请求应用程序中的其余调用。出于特定目的,我使用来自jsp的ajax调用。它成功调用了controller方法并进行了处理,但是由于某种原因,controller方法并没有进入视图。我没有收到任何错误或日志中的任何内容。
控制器:
@RequestMapping(value="/createRunOne/saveRun", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
public String saveRun(@RequestBody Run run, Model model){
try{
this.runService.saveRun(run);
} catch (Exception ex){
model.addAttribute(ERROR, ex.getMessage());
ex.printStackTrace();
}
return "redirect:/run/list";
}
用jsp编写的javascript函数:
function saveRun() {
var run = {
runName: $('#name').val(),
description: $('#description').val(),
justification: $('#justification').val(),
scheduledTime: new Date($('#scheduledTime').val()),
fromReceiptDate: new Date($('#fromdatepicker').val()),
toReceiptDate: new Date($('#todatepicker').val()),
sourceKeyString: $('#segmentSelect').val().toString(),
selectedBlocks: $('#blockList').val().toString(),
compareFilter: $('#filtercase').val(),
productsSelected: selectedList.toString()
};
headers['Content-Type'] = 'application/json';
headers['dataType'] = 'json'
$.ajax({
type: "POST",
url: "createRunOne/saveRun",
data: JSON.stringify(run),
headers: headers,
responseType: "application/json",
success: function(response, data){
if(data=='success'){
}
},
error: function (xhr, textStatus, errorThrown) {
alert(xhr.status);
}
});
}
答案 0 :(得分:0)
在ajax调用中无法通过这种方式重定向。
最好返回一个成功或失败标志,并在ajax成功函数中执行以下操作。
import * as types from '../constants/actionTypes';
export function getBooks(obj={}) {
const api = types.API_URL_BOOKS;
return dispatch => {
client.get(api).then(data => {
dispatch({
type: types.ACTION_BOOK_LIST,
books: data.response.books
});
});
};
}
在视图页面中,使用this进行重定向:
case types.ACTION_BOOK_LIST:
return { ...state,
books: action.books
};