我想測試我的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