[英]What is my C# MVC Web app api's URI?
我花了整整一天的時間來嘗試獲取首頁的jquery,以擊中C#ASP.NET MVC項目中的api控制器。
APP_START中的RouteConfig.cs如下:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "API Default",
url: "api/{controller}/{id}",
defaults: new { id = UrlParameter.Optional }
);
}
我的類稱為LogInController,位於Controllers目錄中:
我已經將LogInController類設置為:
這是我在Index.cshtml上的jquery:
var apiUrl = "api/LogIn";
-
$.post(apiUrl,
{
userName: 'kamron',
pwHash: sha256_digest('password')
},
function (data, status) {
try {
alert(data, status);
} catch (e) {
alert("System error, please try again.");
};
});
和
$.getJSON(apiUrl)
.done(function (data) {
// On success, 'data' contains a list of products.
$.each(data, function (key, item) {
// Add a list item for the product.
alert(key + ':' + item);
});
});
我將不勝感激。 我已經盯着這個呆了整整一天,試圖找出我的問題所在。
如果有任何需要幫助的額外信息,請嘗試提出,我嘗試發布所有相關信息。
非常感謝大家:)
您似乎對接受POST的控制器沒有任何操作。 同樣,$ .getJSON調用沒有附加任何參數,出於安全原因,您通常不希望通過GET請求傳遞憑據。
通過創建一個代表參數的模型,最好將多個參數發布到WebApi。
public class LogonRequest
{
public string Username { get; set; }
public string Password { get; set; }
}
然后接受如下所示的模型:
// POST api/values
public string Post([FromBody]LogonRequest creds)
{
//auth code...
}
可以在此處找到設置jQuery調用和POST操作的一個很好的示例: 如何將json POST數據作為對象傳遞給Web API方法
此外,如果您尚未使用Fiddler,則可以在解決這些問題上提供很大的幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.