【发布时间】:2018-02-21 17:15:02
【问题描述】:
我被困在一些相当简单的事情上。我有一个简单的 AJAX GET 请求函数,我需要处理响应处理。它没有发送任何数据,数据只是通过 GET url 处理。不幸的是,我从来没有在没有数据的情况下发出过,虽然我的响应成功地带回了 JSON 响应,但如果响应没有任何错误,它不会做任何应该做的事情。
这是我的脚本:
<script type="text/javascript">
$(document).on('click', '#pullDetails', function() {
$.ajax({
type:'GET',
url: 'https://webservices.rrts.com/TrackWebApi/api/values/'+$('input[name=proNumber]').val(),
success: function(response) {
$('.errorTitle').addClass('hidden');
$('.errorContent').addClass('hidden');
if ((response.errors)) {
setTimeout(function () {
toastr.error('Validation error - Check your inputs!', 'Error Alert', {timeOut: 5000});
}, 500);
if (data.errors.title) {
$('.errorTitle').removeClass('hidden');
$('.errorTitle').text(data.errors.title);
}
if (data.errors.content) {
$('.errorContent').removeClass('hidden');
$('.errorContent').text(data.errors.content);
}
} else {
$('#carrierReturnData').removeClass('hidden');
$('#carrierReturnData').html(Shipment.Origin.Name);
}
},
});
});
</script>
具体来说,在靠近底部的 ELSE 下方,remove 类不起作用,所以我知道脚本一定认为发生了错误......
响应数据(其中一些是这样的):
SearchResults […]
0 {…}
SearchItem ----9
DisplayType 0
Shipment {…}
DRAvail false
ProNumber -----9
PickupNumber Not Found
CustomerNumber ----3
BillToAccount ----34
更新
更新
更新
【问题讨论】:
-
response的 specific 值是什么,当它从您的响应处理程序返回时?你的浏览器开发者控制台有错误吗?您确定您的响应处理程序正在被触发吗? -
我想您需要更具体地使用以下条件 -
response.errors- 因为else语句中的代码没有被执行。正如@cale_b 指出的那样,查看response的值会很有帮助。 -
我已经更新了从 GET 收到的响应。但是,我应该指出,我不确定将什么放在响应的位置。通常我只有过去遇到 AJAX 的 data.errors,但这并没有发送“数据”。
-
我仍然没有在您的回复中看到
errors的定义。 -
对,我怀疑我会看到任何错误,但我的问题是如何将响应错误集成到这个特定的 GET 响应中。