我想测试我的ASP API。为什么我的ASP API中的json对象为空?
其中一个端点需要从浏览器中获取json对象。为了测试这个,我将一个json对象放入一个文本字段,然后对我的api进行一次ajax调用。当api被击中时,json对象始终为空。
我检查了这个帖子:how to pass json post data to web api method as object,这并没有解决我的问题。
这是我的目标:
{ "userName": "063bcdf2-36fd-4b8c-a5af-808da63744f6",
"password" : "Password"
}
这里是我的Ajax调用:
var submission = function() {
var url = urlBase + "/api/Submission/";
var testdata = $("input[name=submission]").val();
alert(testdata);
$.ajax(url, {
type: "POST",
data: JSON.parse(testdata),
contentType: 'application/x-www-form-urlencoded'
}).always(showResponse)
return false;
};
这里是我的API:
[HttpPost]
[ResponseType(typeof(SubmissionOutputModel))]
public IHttpActionResult POST([FromBody]SubmissionInputModel submission)
{
if (ModelState.IsValid)
{
SubmissionService service = new SubmissionService();
return Json(service.Submit(submission));
}
else
{
return BadRequest("Invalid Model State");
}
}
SubmissionInputModel:
public class SubmissionInputModel
{
[Required]
public string userName { get; set; }
[Required]
public string password { get; set; }
}
ajax中的警报向我显示数据正在发送,并且在调试模式下,api被击中,但提交对象未设置为从ajax调用发送的数据。
如果有人可以帮忙,将不胜感激!
我试过了JSON.stringify(),但得到了相同的结果,所以我想我会在这里尝试.parse()方法。仍然没有快乐。 – user2900166 2014-09-26 23:10:37
尝试使用无内容类型:仍为null。 – user2900166 2014-09-26 23:55:25
尝试使用content-type:application/json并且仍为null。 – user2900166 2014-09-26 23:55:51