我有一个XMLHttpRequest请求,该请求通过API退还了运输费用。
我在单击按钮时激活了请求。当我要求另一个报价时,打印的响应与第一个请求相同,但是在控制台中可以看到不同的数据。
为什么我看不到正确的回复? 我如何总是只打印更新后的请求?
$(“ #checkers”).click(function(){
PlansSubscriptions::whereBetween('starts_on', ["2019-07-30", "2019-07-26"]);
->orWhereBetween('expires_on', ["2019-07-20", "2019-07-22"]);
->get();
PHP部分:
var myKey = "xxxxx";
var name = $('#Inputfield_pad_firstname').val();
var company = $('#Inputfield_company_name').val();
var street1 = $('#Inputfield_pad_address').val();
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 1) {
$('#wrap_Inputfield_shipping_choose').css("opacity",".4");
$('#Inputfield_shipping_choose_1').nextAll().remove();
$('#Inputfield_shipping_choose_2').nextAll().remove();
}
if (this.readyState == 4) {
console.log( this.response );
$('#wrap_Inputfield_shipping_choose').css("opacity","1");
$('#Inputfield_shipping_choose_1').after("<p>JS<b><?= $rate['Rates'][0]['carrier_label'] ?></b> costo: <?= $rate['Rates'][0]['rate'] ?> Tempo<?= $rate['Rates'][0]['delivery_days'] ?></p>");
$('#Inputfield_shipping_choose_2').after("<p>JS<b><?= $rate['Rates'][1]['carrier_label'] ?></b> costo: <?= $rate['Rates'][1]['rate'] ?> Tempo<?= $rate['Rates'][1]['delivery_days'] ?></p>");
}
};
xhttp.responseType = 'json';
xhttp.open("POST", 'https://www.xxxxx.it/form/getRates.php', true);
xhttp.send(JSON.stringify({
'Method' : 'GetRates',
'Params' : {
.... data ...
}
})
);
答案 0 :(得分:0)
您似乎没有使用通过api检索的数据更新ui。
我假设这2行应该进行更新,对吧?
$('#Inputfield_shipping_choose_1').after("<p>JS<b><?= $rate['Rates'][0]['carrier_label'] ?></b> costo: <?= $rate['Rates'][0]['rate'] ?> Tempo<?= $rate['Rates'][0]['delivery_days'] ?></p>");
$('#Inputfield_shipping_choose_2').after("<p>JS<b><?= $rate['Rates'][1]['carrier_label'] ?></b> costo: <?= $rate['Rates'][1]['rate'] ?> Tempo<?= $rate['Rates'][1]['delivery_days'] ?></p>");
您应该使用this.response
而不是<?= ... ?>
的数据更新它们。
答案 1 :(得分:0)
这是正确的答案:
$('#Inputfield_shipping_choose_1').after("<p><b>" +this.response.Rates[0].carrier_label+ "</b> costo: "+ this.response.Rates[0].rate+" Tempo "+ this.response.Rates[0].delivery_days+"</p>");
错误是语法错误。