我想在web中使用json传递两个参数,但是每次尝试时我都会得到null,我遗漏了什么?是否有更好的方法传递多个参数?
//HTML
var uri = "api/Login";//单击按钮后,此函数将触发
function checkUser() {
var email = "ttt@ggg.com";
var password = "itsme";
var details = "{ email:'"+ email+"', pass:'"+ password+"'}";
$.ajax({
type: "Get",
data: JSON.stringify(details),
url: uri,
contentType: "application/json"
});
}// LoginController
[HttpGet]
public HttpResponseMessage Get([FromBody]string data)
{
HttpResponseMessage msg = null;
//the code run this function, but the 'data' is null
string userinfo = data;
return msg;
}发布于 2015-01-26 15:13:46
[FromBody]属性不能处理GET请求,因为GET请求中没有主体。
必须将这些值作为参数传递,或者将方法更改为[HttpPost]。我建议您将方法更改为[HttpPost],并将ajax请求方法更改为POST。
[HttpPost]
public HttpResponseMessage Get([FromBody]string data)
{
HttpResponseMessage msg = null;
//the code run this function, but the 'data' is null
string userinfo = data;
return msg;
}在你的ajax请求中
function checkUser() {
var email = "ttt@ggg.com";
var password = "itsme";
var details = "{ email:'"+ email+"', pass:'"+ password+"'}";
$.ajax({
type: "POST",
data: JSON.stringify(details),
url: uri,
contentType: "application/json"
});
}发布于 2015-01-26 15:17:27
除了@su8898中提到的GET和POST之外,您已经在details中构建了一个字符串,然后尝试使用stringify。您应该将详细信息定义为对象文本,如下所示:
var details = {
'email': email,
'pass': password
};这将为stringify提供一个实际的对象。
https://stackoverflow.com/questions/28151614
复制相似问题