我的javascript函数:
function CheckLogin() {
var user = { "UserName": $('#UN').val(), "Password": $('#P').val() };
$.ajax({
url: 'http://localhost/MvcRazorClient/api/HomeApi/SignIn',
type: 'POST',
data: user,
async: false,
contentType:'application/json',
dataType: 'json',
success: function (data) {
if (data == true)
{
alert('true');
}
else{
alert('false');
}
},
error: function () {
alert('error');
}
});
}
我的web-api方法:
[HttpPost]
public bool SignIn(string UserName, string Password)
{
return true;
}
当我使用GET请求时,我能够将数据,即用户传递给web-api,但是当使用POST时我无法通过。 请帮忙。
答案 0 :(得分:0)
创建一个c#对象,如:
public class User
{
public string UserName {get;set;}
public string Password {get;set;}
}
然后更新您的控制器以接收用户而不是两个字符串,例如
[HttpPost]
public bool SignIn(User user)
{
return true;
}
你可能还需要更新你的javascript对象,因为ajax调用告诉服务器期望一个json对象,你可能需要将你的用户对象创建到
var user = { "userName": $('#UN').val(), "password": $('#P').val() };
答案 1 :(得分:0)
function CheckLogin() {
var user = { "UserName": $('#UN').val(), "Password": $('#P').val() };
user = JSON.stringify(user);//changes made here
$.ajax({
url: 'http://localhost/MvcRazorClient/api/HomeApi/SignIn',
type: 'POST',
data: user,
async: false,
contentType:'application/json',
dataType: 'json',
success: function (data) {
if (data == true)
{
alert('true');
}
else{
alert('false');
}
},
error: function () {
alert('error');
}
});
}
我的web-api方法:
[HttpPost]
public bool SignIn(HttpRequestMessage req)//changes made here
{
var data = req.Content.ReadAsStringAsync().Result;// to extract data
JObject o = JObject.Parse(data);
return true;
}