gpt4 book ai didi

jquery - ajax调用不支持请求方法 'POST'

转载 作者:行者123 更新时间:2023-12-01 07:49:12 25 4
gpt4 key购买 nike

我正在对我的 spring Controller 进行 ajax 调用,以在数据库中创建一些数据,调用如下:

function myfunc(pId,cId,paIndex,cIndex,type)
{
$.ajax({
type : "POST",
url : "./home/useraction/save",
data : {
pId : pId,
cId : cId,
type : type
},
contentType : "application/json; charset=utf-8",
dataType : "json",
async : true,
success : function(data) {
alert(data);
}
});
}

我的 Controller 就像:

@Controller
@RequestMapping("/home")
public class HomeController
{
@RequestMapping(value="/useraction/save" ,method = RequestMethod.POST)
public @ResponseBody GenericResponse save(Model model,HttpServletRequest request) throws Exception
{
String actionType = request.getParameter("type");
try
{
if(actionType != null)
{
if (UserActionTypeEnum.UPVOTE.name().equalsIgnoreCase(type)) {
// do something
} else if (UserActionTypeEnum.DOWNVOTE.name().equalsIgnoreCase(actionType)) {
// do something
} else if (UserActionTypeEnum.SHARE.name().equalsIgnoreCase(actionType)) {
// do something
} else if (UserActionTypeEnum.ADD_POST_TO_BANK.name().equalsIgnoreCase(actionType)) {
// do something
}
}
}
catch (Exception e) {
logger.error("Exception in saveUserActionOnPost() >> " + e.getStackTrace());
}
return "success";
}
}

但我收到以下错误:

HTTP 状态 405 - 不支持请求方法“POST”,所请求的资源不允许指定的 HTTP 方法任何帮助,这里出了什么问题

最佳答案

实际上这是一个安全的网址。在我的产品中使用 spring security。需要在ajax调用中发送csrf信息。然后就成功了

var token = $('#csrfToken').val();
var header = $('#csrfHeader').val();

$.ajax({
type : "POST",
url : "./home/useraction/save",
data : {
pId : pId,
cId : cId,
type : type
},
async : true,
beforeSend: function(xhr) {
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader(header, token);
},

关于jquery - ajax调用不支持请求方法 'POST',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31988696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com