Я могу отобразить ответное сообщение об ошибке обратно, как и ожидалось, но я не могу отобразить ответное сообщение в виде текста, когда статус ответа 200 OK и когда вызывается функция success
, на $("#messageDisplay");
ничего не выводится или $(".messages")
.
Вот код для кнопки «Купить»
$("#makePurchase").on("click", function () {
var id = $("#itemId").val();
var amount = $("#totalAmountIn").val();
var message = $("#messageDisplay");
var change = $("#changeAmount");
$.ajax({
type: 'GET',
url: 'http://localhost:8080/money/' + amount + '/item/' + id,
success: function (response) {
message.val("Thank you!!!");
var amountChange = $.parseJSON(response.responseText);
$.each(amountChange, function (key, value) {
if ($.isPlainObject(value)) {
$.each(value, function (key, value) {
$(".messages").addClass("alert alert-danger");
$('.messages').show().append(value + "<br/>");
});
} else {
change.val(value);
}
})
},
error: function (response) {
var errors = $.parseJSON(response.responseText);
$.each(errors, function (key, value) {
if ($.isPlainObject(value)) {
$.each(value, function (key, value) {
$(".messages").addClass("alert alert-danger");
$('.messages').show().append(value + "<br/>");
});
} else {
message.val(value);
}
})
}
})
})
HTML:
<div class="col-md-4">
<h1>Message</h1>
<div class="messages"></div>
<input type="text" value="" id="messageDisplay" readonly="readonly"></input>
<h3>Item:</h3>
<input type="text" value="" id="itemId"></input>
<div class="col-md-4">
<button type="button" id="makePurchase" class="btn btn-default">
Make Purchase
</button>
</div>
</div>
<div class="col-md-4">
<h1>Change</h1>
<input type="text" value="" id="changeAmount" readonly="readonly"></input>
<div class="col-md-4">
<button type="button" id="addDime" class="btn btn-default">
Change Return
</button>
</div>
</div>
</div>
Вывод ответа: {"quarters":2,"dimes":0,"nickels":0,"pennies":0}
при статусе ответа 200 ХОРОШО. Как вы можете видеть в консоли, идентификатор равен 1, и отображается ответ. Нет необходимости выводить значения 0, но я по крайней мере хочу знать, как отобразить этот ответ?
Ошибка консоли сообщение:
Uncaught SyntaxError: Unexpected token u in JSON at position 0
at JSON.parse (<anonymous>)
at Function.n.parseJSON (jquery-2.2.4.min.js:4)
at Object.success (home.js:37)
at i (jquery-2.2.4.min.js:2)
at Object.fireWith [as resolveWith] (jquery-2.2.4.min.js:2)
at z (jquery-2.2.4.min.js:4)
at XMLHttpRequest.<anonymous> (jquery-2.2.4.min.js:4)
n.parseJSON @ jquery-2.2.4.min.js:4
success @ home.js:37
i @ jquery-2.2.4.min.js:2
fireWith @ jquery-2.2.4.min.js:2
z @ jquery-2.2.4.min.js:4
(anonymous) @ jquery-2.2.4.min.js:4
load (async)
send @ jquery-2.2.4.min.js:4
ajax @ jquery-2.2.4.min.js:4
(anonymous) @ home.js:31
dispatch @ jquery-2.2.4.min.js:3
r.handle @ jquery-2.2.4.min.js:3