在我的编辑页面上,我使用的是api控制器。
这是我的$ .ajax:
var settings = {};
settings.baseUri = '@Request.ApplicationPath';
var infoGetUrl = "";
if (settings.baseUri === "/ServerProjectName") {
infoGetUrl = settings.baseUri + "/api/controllerName/";
} else {
infoGetUrl = settings.baseUri + "api/controllerName/";
}
$("#Edit-Btn").on("click",
function(e) {
$("form").validate({
submitHandler: function() {
e.preventDefault();
$.ajax({
method: "PUT",
url: infoGetUrl,
data: $("form").serialize(),
success: function(data) {
toastr.options = {
onHidden: function() {
window.location.href = newUrl;
},
timeOut: 3000
}
toastr.success("Successfully edited.");
},
error: function (jqXHR, textStatus, errorThrown) {
var status = capitalizeFirstLetter(textStatus);
toastr.error(status + " - " + jqXHR.responseText);
}
});
}
});
});
这个方法下面是'DELETE'的另一个ajax函数,它完美地运行。只有PUT方法给我这个错误。
当我提交时,我收到一条错误消息:
请求的资源不支持http方法'PUT'
我看过this但不太了解。我正在使用IE 11,所以我认为它应该得到支持。
非常感谢任何想法或帮助。
答案 0 :(得分:1)
您收到此消息的原因是您尝试使用的API不支持HTTP PUT方法。
通常情况下,如果您使用的是web api 2.0,那么如果支持PUT,则您的网络方法的属性为[HttpPut]
。还有其他方法可以标记API以支持Put,但通常不使用。
确认您的API是问题的最简单方法是使用Postman尝试使用该API,并消除您使用javascript时可能遇到的任何问题。