Jquery 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_

我目前正在处理jquery,我想使用ajax从API调用中获取信息,我在一个模糊函数中这样做,该函数从输入中获取值,然后调用端点,但ajax调用停留在readystate 1上,我不知道确切原因

我就是这样做的

(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+"&current_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,并且工作得很好,谢谢