我写了一个mvc动作,适用于Chrome和Firefox,但不适用于IE11。使用IE11,它返回404响应代码。
控制器:
[HttpDelete]
public ActionResult DeleteAction(int ActionID)
{
return Json(_Logic.DeleteAction(ActionID), JsonRequestBehavior.DenyGet);
}
致电JS:
Ajax_Proxy.DeleteAction = function (_actionID, successCallback, failureCallback) {
return $.ajax({
type: "DELETE",
datatype: 'json',
url: "/root/someurl/DeleteAction?ActionId=" + _actionID,
contentType: 'application/json; charset=utf-8',
success: function (data) { successCallback(_actionID, data); },
error: function (data) { failureCallback(data); },
});
};
我正在访问的网址是正确的,因为它可以在其他浏览器中使用。有没有人见过这个?
答案 0 :(得分:1)
因为你说它适用于Chrome和Firefox我假设你在IIS上启用了PUT/Delete
方法吗?
如果是,我认为这可能是某些IE浏览器在Ajax调用中不支持type: "DELETE"
的问题。也许你正在使用IE8的兼容模式或类似的东西?
此处已经提到了这个问题:Problem with jQuery.ajax with 'delete' method in ie也许您只是发现IE11也不支持DELETE
。
另一个好的讨论Are the PUT, DELETE, HEAD, etc methods available in most web browsers?
答案 1 :(得分:0)
试试这个。
Ajax_Proxy.DeleteAction = function (_actionID, successCallback, failureCallback) {
return $.ajax({
type: "DELETE",
datatype: 'json',
url: '@Url.Content("~/root/someurl/DeleteAction/")' + _actionID,
contentType: 'application/json; charset=utf-8',
success: function (data) { successCallback(_actionID, data); },
error: function (data) { failureCallback(data); },
});
};