#c# #ajax #asp.net-core
#c# #ajax #asp.net-core
Вопрос:
Я вызываю контроллер с помощью Ajax Post, в контроллере catch возвращает пользовательскую страницу с ошибкой вместо возврата сообщения об ошибке.
Контроллер Catch:
catch (Exception ex)
{
return BadRequest(ex.Message " - " ex.InnerException?.Message Environment.NewLine Environment.NewLine ex.StackTrace);
}
Опубликовать Ajax:
$.post({
url: eapi 'pedido/' id_empresa '/' token_emp '/' agendamentotf,
data: JSON.stringify(vm.ped_post),
headers: {
"Content-Type": "application/json"
},
success: function(data) {
var response = data;
},
error: function(error) {
console.log(error.responseText);
}
});
This error.responseText возвращает страницу с ошибкой, а не сообщение об ошибке.
Кто-нибудь может помочь?
Ответ №1:
Я не эксперт в сообщении jquery, но я обнаружил, что вы не вводите функцию ошибки там, где вы это делаете, но таким образом:
$.post({
url: eapi 'pedido/' id_empresa '/' token_emp '/' agendamentotf,
data: JSON.stringify(vm.ped_post),
headers: {
"Content-Type": "application/json"
},
success: function(data) {
var response = data;
}
})
.fail((xhr, status, error) => {
console.log(error.responseText);
});
вы можете увидеть это здесь
Ответ №2:
Ошибка заключается в том, что вы пытаетесь использовать $.post вместо $.ajax Вот ваш исправленный код:
$.ajax({
type: "POST",
url: eapi 'pedido/' id_empresa '/' token_emp '/' agendamentotf,
data: JSON.stringify(vm.ped_post),
headers: {
"Content-Type": "application/json"
},
success: function(data) {
var response = data;
},
error: function(XMLHttpRequest, textStatus, error) {
console.log(error);
}
});
Ответ №3:
Похоже, ваш контроллер не настроен как контроллер API, и в этом случае вам может потребоваться изменить тип возвращаемого действия на JsonResult.
Ответ №4:
Попробуйте использовать простую строку в BadRequest, например return BadRequest("Test");
Я подозреваю, что этот код может вызвать еще одно исключение.
ex.Message " - " ex.InnerException?.Message Environment.NewLine Environment.NewLine ex.StackTrace