У меня есть проект WebAPI (c #), и я проверяю его на своей странице (Index.cshtml):
<html>
<head>
...
</head>
<body>
<script src="@Url.Content("~/Scripts/jquery-3.2.1.js")" type="text/javascript"></script>
<script type="text/javascript">
function GetData() {
$.ajax({
url: "http://localhost:0000/api/test/test/cox/Test",
type: 'POST',
dataType: 'json',
data: JSON.stringify("Hello!!!"),
crossDomain: true,
processData: false,
contentType: 'application/json, charset=utf-8',
headers: { User: "test", Password: "test" },
success: function (q, w, e) {
alert(JSON.stringify(q));
},
error: function (q, w, e) {
alert("error: " + w);
}
});
}
</script>
<p>
<button onclick="GetData()">GetData</button>
</p>
</body>
</html>
Эта страница вызывает мой метод:
[HttpPost]
[ResponseType(typeof(IEnumerable<СompositeType>))]
public HttpResponseMessage Test(string cox, [FromBody] string str)
{
...
}
и яполучить ошибку: 415 «Неподдерживаемый тип носителя».Я читал об этой ошибке, и кто-то говорит, что contentType: 'application/json, charset=utf-8'
решит проблему.Я знаю, что атрибут [FromBody] вызывает contentType: 'application/json'
для преобразования, но я не понимаю, почему у меня ошибка 415.