2017-10-02 6 views
1

私はそのPOSTの要求の下にjavascriptコードを持っていますが、その応答をskuというローカル変数に保存したいのですが、バインディングではありません。スクリプトのローカル変数へのPOST要求を取得する

変数skuは空の文字列のままです。

var sku = ""; //to be passed to server when filled 
 
    
 
    var cookie_info = { 
 
     number_nights: number_nights_cookie, 
 
     number_travelers: number_travelers_cookie, 
 
     type_traveler: type_traveler_cookie, 
 
     departure_date: departure_date_cookie, 
 
     country: country_cookie 
 
    }; 
 
    
 
    $.ajax({ 
 
     type: 'POST', 
 
     url: 'https://azooree.com/wp-admin/php/sku-calculation.php', 
 
     data: cookie_info, 
 
     success: function(response) {    
 
      console.log('success', response); 
 
      sku = response; 
 
     }, 
 
     error: function() { 
 
      console.log('error!'); 
 
      alert("[ERROR] Information lost, please try again. Thank you!"); 
 
     } 
 
    }); 
 
    
 
    var basic = { 
 
     info: sku + "LP" 
 
    };

+0

あなたはこれもPHPでタグ付けされています。あなたはJSの答えやPHPの答えをしたいですか? –

+1

応答コールバックの前に 'basic'への代入が行われていますが、' sku'がまだ空のとき –

答えて

2

変数skuの値は非同期で、あなたのPOST要求から返されています。そのため、skuの値をbasicに割り当てるときには、それは空になります。

あなたが簡単にbasicの値を更新するかbelow-

$.ajax({ 
    type: 'POST', 
    url: 'https://azooree.com/wp-admin/php/sku-calculation.php', 
    data: cookie_info, 
    success: function(response) {    
     console.log('success', response); 
     sku = response; 
     updateBasicValue(sku); 
    }, 
    error: function() { 
     console.log('error!'); 
     alert("[ERROR] Information lost, please try again. Thank you!"); 
    } 
}); 
function updateBasicValue(sku) { 
    basic = { 
     info: sku+"LP" 
    }; 
} 

もないと同じようにコールバック関数を使用することによって、あなたはあなたのAJAXのsuccess関数の内部sku変数で行う必要があるものは何でも行うことができます要求。

UPDATE リクエストが、それ以外のドメインまたはサブドメインと異なるドメインから送信されている場合は、CORSの問題もチェックする必要があります。 - (ありがとうございますLordNeo)

+0

リクエストが他のドメインまたはサブドメインと異なるものから送信されている場合は、CORSの問題をチェックする必要がありますそれ。 – LordNeo

+0

それはうまくいかないようです。続行する前に、スクリプトが応答を待つようにするにはどうすればよいですか? –

+0

@IgorSilveiraスクリプトは応答を待つことができません - これはAJAXの呼び出し方法です。あなたはあなたの応答に何をする必要がありますか? –

関連する問題