【问题标题】:Capture POST request to local variable in script [duplicate]在脚本中捕获对局部变量的 POST 请求 [重复]
【发布时间】:2017-10-02 18:42:54
【问题描述】:

我有下面的 POST 请求的 javascript 代码,然后我想将响应保存到名为 sku 的局部变量,但它没有绑定。

变量 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" 
    };

【问题讨论】:

  • 您在 PHP 中也有此标记。你要 JS 答案还是 PHP 答案?
  • 您对basic 的分配发生在响应回调之前,而sku 仍然为空

标签: javascript php post


【解决方案1】:

变量sku 的值是从您的POST 异步请求中返回的。这就是为什么在将 sku 的值分配给 basic 时 - 它将为空。

您可以使用如下回调函数轻松更新basic 的值-

$.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 变量执行任何您需要执行的操作。

更新 如果您的请求是从不同于引起请求的域或子域发送的,您还需要检查 CORS 问题。 - (感谢 LordNeo)

【讨论】:

  • 只需补充一点,如果请求是从任何其他域或子域而不是引起它的域发送的,他需要检查 CORS 问题。
  • 这似乎不起作用。如何让脚本在继续之前等待响应?
  • @IgorSilveira 脚本无法等待响应 - 这是 AJAX 调用的工作方式。您需要如何处理您的回复?
  • 我需要用来发出GET请求
  • 所以您可以在上面的示例中的updateBasicValue() 函数中编写您的GET 请求。
猜你喜欢
  • 1970-01-01
  • 2020-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-26
相关资源
最近更新 更多