Я пытаюсь вызвать API со страницы нажатием кнопки через ajax вызов. Проблема в том, что для GET & DELETE вызов работает, но для POST и PUT он говорит, что в отладчике firefox указан неправильный формат запроса.
namespace WebApplication1.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class JsonDataAPIController : ControllerBase
{
// GET: api/JsonDataAPI
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET: api/JsonDataAPI/5
[HttpGet("{id}", Name = "Get")]
public string Get(int id)
{
return "value";
}
// POST: api/JsonDataAPI
[HttpPost]
public void Post([FromBody] string value)
{
//check for value and do stuff
}
// PUT: api/JsonDataAPI/5
[HttpPut("{id}")]
public void Put(int id, [FromBody] string value)
{
}
// DELETE: api/ApiWithActions/5
[HttpDelete("{id}")]
public void Delete(int id)
{
}
}
}
вызов функции в html page
function apicall() {
$.ajax({
url: 'api/JsonDataAPI',
type: 'POST',
data: {value:'1234'},
success: function (data) {
console.log(data);
console.log("success");
},
error: function () {
console.log("error");
}
}).done(function () {
//console.log("ajax");
})
}
В конечном итоге я хочу отправить JSON данные через ajax и работать в API. Я знаю, что если я не отправлю вызовы contenttype и datatypein ajax, он будет назначен автоматически. Тогда почему эти строковые данные не работают, я не могу получить. Почему в API есть ControllerBase? Разве это не APIController?
Кроме того, когда я пытался использовать Postman, API даже не вызывали. Если я пытаюсь получить доступ к API через URL в firefox, он может получить доступ к API GET, но когда тот же URL-адрес используется в POSTman, он говорит: «Не удалось получить ответ». Я не включил какую-либо аутентификацию при настройке проекта, а также в почтальоне, я правильно установил параметры (как без аутентификации), все равно от почтальона вызов не будет работать. Извините, но я изучаю, следовательно, так много вопросов. Заранее спасибо.