我正在設計一個簡單的Web API服務,它接受html表單上的輸入,將這些輸入轉換爲json,然後將其發送到一個Web API。我在Visual Studio 2017年在這裏與ASP.NET的Web API的工作是我的一些代碼,以幫助我更好地解釋:在ASP.NET Web API中發送Ajax POST請求時出現'Error 405 - Method not Allowed'
這是我的控制器方法我打電話:
[HttpPost]
public AssessModel PostAssessment ([FromBody] AssessModel assess)
{
//Do something
return assess;
}
這是模型(簡體),我使用:
public class AssessModel
{
public Guid capitalassetassessmentid { get; set; }
public string ownerid { get; set; }
/*... Many more properties of int, bool, ect here ...*/
public string name { get; set; }
public string building { get; set; }
}
最後,這是Ajax調用,我用我的腳本:
$("form#my-form").submit(function (e) {
//First line here takes all fields and puts them in an array
var formArray = $(this).serializeArray();
//Second line takes that array and puts it into json format.
var jsonObj = JSON.stringify(formArray);
//Send request
$.ajax({
type: "POST",
url: "api/assessment/PostAssessment",
data: jsonObj,
contentType: "application/json",
dataType: "json",
success: function (jsonObj) {
$("#results").html(jsonObj.d);
}
});
});
所以我在提交表單時調用了這個ajax請求。這個Ajax請求應該把我的json作爲一個字符串發送給控制器方法,但是當我按下提交時,我得到一個錯誤405 - 方法不允許。我不確定爲什麼我不允許使用標記HttpPost將POST動詞發送到控制器方法。
另外值得一提的是,我的表單標籤是這樣的:
<form id="my-form" class="form" method="POST">
有什麼想法?我需要澄清什麼嗎?讓我知道。
我會仔細檢查你的路由。你確定端點是API /評估/後評估嗎?這可能只是api /評估。 – skalpin
我剛剛檢查了這一點,它沒有解決問題。雖然好想。 –
嘗試將鏈接中的代碼添加到您的web api web.config https://enable-cors.org/server_iis7.html。不知道這是你的問題,但如果它解決了問題,我可以給你一個詳細的答案。 – RandomUs1r