修改javascript头响应

修改javascript头响应,javascript,aws-lambda,http-headers,Javascript,Aws Lambda,Http Headers,我有以下javascript脚本 'use strict'; exports.handler = (event, context, callback) => { //Get contents of response const response = event.Records[0].cf.response; const headers = response.headers; //Set new headers headers['X-Robots-Tag

我有以下javascript脚本

'use strict';
exports.handler = (event, context, callback) => {
    
    //Get contents of response
    const response = event.Records[0].cf.response;
    const headers = response.headers;
//Set new headers 
 headers['X-Robots-Tag'] = [{key: 'X-Robots-Tag', value: 'noindex'}]; 

    callback(null, response);
};

他返回的每个请求都会修改X-Robots-Tag的noindex值

现在出现了另一个需求,我必须为一个特定的uri传递另一个头

例如,当您到达时,我想请求:

在标题中插入

X-Ads-Tag value: true : Exemple headers['X-Ads-Tag'] = [{key: 'X-Ads-Tag', value: 'true'}];
Value X-Marketing-Tag: true : Exemple headers['X-Marketing-Tag'] = [{key: 'X-Marketing-Tag', value: 'true'}];
当一个请求进来时

在标题中插入

X-Ads-Tag value: true : Exemple headers['X-Ads-Tag'] = [{key: 'X-Ads-Tag', value: 'true'}];
Value X-Marketing-Tag: true : Exemple headers['X-Marketing-Tag'] = [{key: 'X-Marketing-Tag', value: 'true'}];
一个url总是相同的,它可以改变,并且在将来每个url都有更多不同的uri和新的标题

Example uri:
/ads
/marketing
/hub
/gamming
放置这些常量后,他会为我带来到达的uri

const uri = response.uri;

有人能帮我吗?

你可以创建一个函数来检查url,并根据url添加更多的标题

export.handler = (event, context, callback) => {

  //Get contents of response
  const response = event.Records[0].cf.response;
  const headers = response.headers;
  addMoreHeaders(response.uri, headers)
  //Set new headers 
  headers['X-Robots-Tag'] = [{
    key: 'X-Robots-Tag',
    value: 'noindex'
  }];


  callback(null, response);
};

const addMoreHeaders = (url, headers) {
  let key = ""
  let value = ""
  const name = ""
  const urls = url.split('/')
  const end = urls[urls.length - 1]
  switch (end) {
    case 'ads':
      key = "ab";
      value = "v";
      name = "ads";
      break;
      .....
  }
  headers[name] = [{
    key,
    value
  }]
}

我不确定我是否正确地理解了您,但是如果您能够获取当前请求的uri,您只需执行以下操作即可

const uri=response.uri; if/^\/ads/i.testuri{ 标题['X-Ad-Tag']=[{key:'X-Ad-Tag',value:'true'}]; }else if/^\/marketing/i.testuri{ 标题['X-Marketing-Tag']=[{key:'X-Marketing-Tag',value:'true'}]; }
/^\/ads/i.testuri是一个正则表达式,它测试uri是否以/ads开头

这里的问题到底是什么?有人能帮我吗?帮你做什么?