如何根据网址设置jquery ajax标头授权?

时间:2018-10-30 08:11:14

标签: javascript php jquery html wordpress

我有一个wordpress网站,其“订购页面”上有woocommerce ajax请求。该网站有一个暂存域和一个实时域。

$(function(){
   var root_url = 'https://'+window.location.hostname;
   console.log(root_url);
});

Ajax请求分期样本:

$.ajax({
  type: 'GET',
  url: https://staging-mywebsite.net/wp-json/wc/v2/products?category=504,
  cache: false,
  beforeSend: function(jqXHR, settings) {
  },
  headers: {"Authorization": "Basic " + btoa("ck_123" + ":" + "cs_123") // staging},
  success: function(data) {
  }
});

Ajax实时网站申请样品:

$.ajax({
  type: 'GET',
  url: https://livewebsite.com/wp-json/wc/v2/products?category=504,
  cache: false,
  beforeSend: function(jqXHR, settings) {
  },
  headers: {"Authorization": "Basic " + btoa("ck_456" + ":" + "cs_456") // staging},
  success: function(data) {
  }
});

直播和登台的网站在headers属性上具有不同的用户名和密码。

您知道如何根据域为headers属性设置条件或全局变量吗?

感谢您的帮助。谢谢

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用document.domain属性?我在想这样的事情:

var headers = {"Authorization": "Basic " + btoa("ck_456" + ":" + "cs_456")} // Assume live site
if( document.domain === "staging-mywebsite.net" ){
  headers = {"Authorization": "Basic " + btoa("ck_123" + ":" + "cs_123")} // Use staging instead
}

然后在AJAX请求中使用该变量。

...
headers: headers,
...