當引數標記為 [FromBody] 時接收不到 application/json; charset=utf-8的值 只能接收到Content-Type=application/json的值 ,
怎么處理才能接收到application/json; charset=utf-8的值呢??
uj5u.com熱心網友回復:
什么叫作“ application/json; charset=utf-8的值”,這只是設定資料傳輸時的編碼格式,以json,還是以xml,charset表示字符集格式。uj5u.com熱心網友回復:
引數設定為string型別,json格式表示即可。uj5u.com熱心網友回復:
1.web.config 需要配置跨域
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Methods" value="https://bbs.csdn.net/topics/GET, POST, PUT, DELETE, OPTIONS " />
<add name="Access-Control-Allow-Headers" value="https://bbs.csdn.net/topics/x-requested-with,content-type" />
<add name="Access-Control-Allow-Origin" value="https://bbs.csdn.net/topics/*" />
</customHeaders>
</httpProtocol>
2.前端代碼
$("#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: JSON.stringify(jdata),
crossDomain: true,
success: function (returndata) {
alert(JSON.stringify(returndata));
},
error: function (returndata) {
alert(2);
}
});
});
3.后端api
[HttpPost, HttpOptions]
[ActionName("testPost")]
public ApiResult testPost()
{
try
{
// 接收
Stream inputstream = HttpContext.Current.Request.InputStream;
byte[] b = new byte[inputstream.Length];
inputstream.Read(b, 0, (int)inputstream.Length);
string inputstr = UTF8Encoding.UTF8.GetString(b);
return new ApiResult
{
IsError = false,
Msg = "獲取成功",
PageCount = 1,
Result = inputstr
};
}
catch (Exception err)
{
return new ApiResult
{
IsError = true,
Msg = "失敗",
PageCount = 1,
Result = "testPost"
};
}
}
4.答應結果

uj5u.com熱心網友回復:
如果已結請給分轉載請註明出處,本文鏈接:https://www.uj5u.com/net/22859.html
標籤:.NET技術前瞻
