62,074
社区成员
发帖
与我相关
我的任务
分享
public class TestController : BaseController
{
[HttpPost]
public HttpResponseMessage testPost([FromBody]TokenModel token)
{
try
{
return Success().toHttpResponseJson();
}
catch (Exception err)
{
return Failure(err.Message).toHttpResponseJson();
}
}
}
public class TokenModel
{
public string access_token { get; set; }
public long createtime { get; set; }
public int expires_in { get; set; }
}
function doRequest() {
var jData = "{\"access_token\":\"aaaaaaa\",\"createtime\":112121212,\"expires_in\":7200}";
$.ajax({
url: 'http://localhost:37424/api/test/testPost',
type: 'POST',
data: JSON.parse(jData), //这里直接用jData也不行
contentType: "application/json",
dataType: "json",
success: function (returndata) {
alert(1);
},
error: function (returndata) {
alert(2);
}
});
}
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS " />
<add name="Access-Control-Allow-Headers" value="x-requested-with,content-type" />
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
2.前端ajax
$("#save").click(function(){
jQuery.support.cors = true;
var jdata = {"access_token":"1231","createtime":"123","expires_in":"123"};
$.ajax({
url: 'http://192.168.1.81:8492/api/values/testPost',
type: "POST",
// contentType:"application/json; charset=urf-8", 指定的是类型json串,不是 json 对象
dataType:'json',
data: jdata,
crossDomain: true,
success: function (returndata) {
alert(JSON.stringify(returndata));
},
error: function (returndata) {
alert(2);
}
});
});
3.后端C#代码
[HttpPost, HttpOptions]
[ActionName("testPost")]
public ApiResult testPost([FromBody] TokenModel tokenModel)
{
try
{
return new ApiResult
{
IsError = false,
Msg = "获取成功",
PageCount = 1,
Result = tokenModel
};
}
catch (Exception err)
{
return new ApiResult
{
IsError = true,
Msg = "失败",
PageCount = 1,
Result = "testPost"
};
}
}
4.打印结果
public class TestController : ApiController
{
[HttpPost]
public string testPost([FromBody]TokenModel token)
{
try
{
return "OK";
}
catch (Exception err)
{
return "error";
}
}
}
如果以上代码可以输入出OK,那说明你的BaseController有问题,建议用调试工具,错误还是比较清淅的。