从React向C# WebApi发送Json数据
从React向C# WebApi发送Json数据
我有一个C# WebAPI的操作。我正在尝试使用React将一个字符串(但是一个json字符串化的字符串)发送到它。出于某种原因,当内容类型为application/json时,我得到一个405方法不允许的错误。Urlencoded可以进入PostTransaction,但是body始终为空。我需要做出哪些改变才能够在PostTransaction中获取json?\nWebConfig\n
\nWebApiConfig\n
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html")); config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));
\nC# WebApi\n
[HttpPost] [ActionName("PostTransaction")] public string PostTransaction([FromBody] string body, string task, int key, string filters, string options) { // 当内容类型为urlencoded时,来自react的body为空,但是来自jquery post的body是正确的 string returnString = "未找到数据"; if (body != null) { returnString = body.ToString(); } return returnString; }
\nReact\n
var dataToSend = JSON.stringify({ param1: "value1", param2: "value2"}); fetch('http://localhosturl/PostTransaction', { method: 'post', headers: { 'Accept': 'application/json, text/plain, */*', 'Content-Type': 'application/json' }, body: dataToSend }) .then(response => { }
\nJQuery Post\n
var dataToSend = JSON.stringify({ param1: "value1", param2: "value2"}); $.post('http://localhosturl/PostTransaction', { '': dataToSend }).done(function (data) { console.debug(data); // 来自Web API的返回数据 });
\n谢谢