У меня проблемы с отправкой сообщений в мой WEBAPI.
Мой код для моего ASP.NET WEBAPI выглядит следующим образом:
[RoutePrefix("api/Test")]
public class TestController : ApiController
{
// GET: api/Test
[Route]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
[Route]
public void Post([FromBody]string value)
{
Debugger.Break();
}
Вызовы из моего приложения Vue.js через axiosследующие:
PostTest(){
alert("Post Test Starting");
var data = new FormData();
data.set('value','test');
//var data = {'value': 'test'};
this.CallAxios('post', 'http://localhost:10000/api/Test/', data, axiosHeaders);
},
CallAxios(callMethod, callURL, callData, callHeaders)
{
axios({
method: callMethod,
url: callURL,
data: callData,
headers: callHeaders
}).then((response) => {
alert(response.data)
})
}
Мой тип контента для всех запросов установлен на application / json
Если я вызываю метод PostTest Vue с использованием раздела FormData и оставляю атрибут [FromBody]в методе .NET API Post появляется следующая ошибка 415 «Неподдерживаемый тип мультимедиа»:
{«Сообщение»: «Тип мультимедиа объекта запроса« multipart / form-data »не поддерживается дляthis resource. "," ExceptionMessage ":" MediaTypeFormatter недоступен для чтения объекта типа 'String' из содержимого с типом мультимедиа 'multipart / form-data'. ",
Так что, хотяЯ указал application / json для Content-Type, он все еще выглядит как multipart / form-data
Если я переключу код Vue.js на использование "var data = {'value': 'test'} "и я удаляю атрибут [FromBody] из параметра .NET Postя получаю следующую ошибку 405 «Метод не разрешен»:
{«Сообщение»: «Запрашиваемый ресурс не поддерживает http-метод« POST ».»}
Я боролся с этим некоторое время.Кажется, я могу сделать один из следующих вариантов:
- Используя vue-вызов FormData, как мне получить ошибку 415 с проблемой multipart / form-data?
- Использованиестроку JSon, как мне поддержать глагол POST в вызове API?