Jquery Ajax函数无法运行readystate 1
我目前正在处理jquery,我想使用ajax从API调用中获取信息,我在一个模糊函数中这样做,该函数从输入中获取值,然后调用端点,但ajax调用停留在readystate 1上,我不知道确切原因 我就是这样做的Jquery Ajax函数无法运行readystate 1,jquery,ajax,woocommerce,Jquery,Ajax,Woocommerce,我目前正在处理jquery,我想使用ajax从API调用中获取信息,我在一个模糊函数中这样做,该函数从输入中获取值,然后调用端点,但ajax调用停留在readystate 1上,我不知道确切原因 我就是这样做的 (function ($) { $(document).ready(function () { $(document).on("change","#calc_shipping_method",function(){ $('.rp_calc_
(function ($) {
$(document).ready(function () {
$(document).on("change","#calc_shipping_method",function(){
$('.rp_calc_shipping').trigger('click');
});
$('.shipping_postcode input,.shipping_state input').blur(function () {
$(".loaderimage").show();
element=$(this);
var datastring = $(this).closest(".woocommerce-shipping-calculator").serialize();
if($("input.variation_id").length>0){
datastring=datastring+"&variation_id="+$("input.variation_id").val();
}
if($("input[name=quantity]").length>0){
datastring=datastring+"¤t_qty="+$("input[name=quantity]").val();
}
var zip = $("#calc_shipping_postcode").val();
// THIS DOENS'T WORK
var state = $.ajax({
type: "GET",
crossOrigin: true,
url: "http://api.postmon.com.br/v1/cep/"+zip,
dataType: 'json',
success: function () {
alert ("hello world");
}
});
state = state['responseJSON']['estado'];
//03134-001
datastring.replace("calc_shipping_state=","calc_shipping_state="+state);
$.ajax({
type: "POST",
url: rp_ajax_url+"?action=update_shipping_method",
data: datastring,
success: function (data) {
$(".loaderimage").hide();
element.parent().parent().find('.shippingmethod_container').html(data);
}
});
return false;
});
});})(jQuery);
问题是ajax上的警报正常工作,但对象的readystate为1。通过添加
async:false
,问题得以解决
像这样:
var state = $.ajax({
type: "GET",
crossOrigin: true,
url: "http://api.postmon.com.br/v1/cep/"+zip,
dataType: 'json',
async: false
});
通过添加
async:false
,问题得以解决
像这样:
var state = $.ajax({
type: "GET",
crossOrigin: true,
url: "http://api.postmon.com.br/v1/cep/"+zip,
dataType: 'json',
async: false
});
通常,在success方法中执行结果数据的处理<代码>状态=状态['responseJSON']['estado']似乎期望ajax以同步方式运行,而ajax在默认情况下不会这样做。听起来不错<代码>状态=状态['responseJSON']['estado']应该会失败,因为json还没有收到。我将async:false设置为false,并且工作得很好,感谢成功方法中执行了对结果数据的处理<代码>状态=状态['responseJSON']['estado']似乎期望ajax以同步方式运行,而ajax在默认情况下不会这样做。听起来不错<代码>状态=状态['responseJSON']['estado']应该会失败,因为json还没有收到。我将async:false设置为false,并且工作得很好,谢谢