Ajax函数不能正常运行1

时间:2017-08-07 20:33:56

标签: jquery ajax woocommerce

我目前正在研究jquery,我希望使用ajax从API调用中获取信息,我在模糊函数上执行此操作,该函数从输入获取值,然后调用结束点,但是ajax呼叫保持在状态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。

1 个答案:

答案 0 :(得分:0)

添加async: false

解决了问题 像这样:

        var state = $.ajax({
            type: "GET",
            crossOrigin: true,
            url: "http://api.postmon.com.br/v1/cep/"+zip,
            dataType: 'json',
            async: false
        });