我可以像这样成功地对我的webAPI进行ajax调用:
使用Javascript:
$.ajax({ type: "GET", url: "api/Breeze/DeleteMaterials", cache: false, data: { aa: 'aa', bb: 'bb' }, dataType: "json", contentType: "application/json; charset=utf-8", traditional: true, success: () => { result.resolve(true); }, error: (error) => result.reject(error) });
Web API:
[System.Web.Http.HttpGet] public void DeleteMaterials(string aa, string bb) { // doing something here }
它工作得很好.到达webAPI并且存在值参数.现在我不想保持'GET'调用,因为在这里我正在执行删除服务器端,我需要'DELETE'或'POST'.
我知道'DELETE'调用是不可能的,因为它只接受1个参数,对于我的情况我需要传递2个参数.
所以我尝试在我之前的代码中用'POST'替换'GET'并且从未到达webAPI并且我得到HTTP错误404:找不到.
我已经在所有SO建议中搜索了很多但是没有一个能给我我需要的东西.
任何的想法?
谢谢.
使用Javascript
$.ajax({ type: "POST", url: "api/Breeze/DeleteMaterials", cache: false, data: JSON.stringify({ aa: 'aa', bb: 'bb' }), contentType: "application/json; charset=utf-8", traditional: true, success: () => { result.resolve(true); }, error: (error) => result.reject(error) });
Web API
[ActionName("DeleteMaterials")] [HttpPost] public void DeleteMaterials(JObject jsonData) { dynamic json = jsonData; string aa= json.aa; string bb= json.bb; }