修改 javascript header 回复
modify javascript header response
我在 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);
};
每个请求他 returns 他修改 X-Robots-Tag 的 noindex 值。
现在出现了另一个需求,我必须为特定的 uri 传递另一个 header。
例如,我想,当你到达时,请求:
插入 headers
X-Ads-Tag value: true : Exemple headers['X-Ads-Tag'] = [{key: 'X-Ads-Tag', value: 'true'}];
当收到请求时
插入 headers
Value X-Marketing-Tag: true : Exemple headers['X-Marketing-Tag'] = [{key: 'X-Marketing-Tag', value: 'true'}];
a url 将始终相同,这可能会发生变化,并且将来会有更多不同的 uri 和新标题。
Example uri:
/ads
/marketing
/hub
/gamming
放置这些常量,他给我带来到达的 uri。
const uri = response.uri;
有人可以帮助我吗?
您可以创建一个函数来检查 url 并基于 url 添加更多 headers.
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.test(uri)) {
headers['X-Ad-Tag'] = [{key: 'X-Ad-Tag', value: 'true'}];
} else if (/^\/marketing/i.test(uri)) {
headers['X-Marketing-Tag'] = [{key: 'X-Marketing-Tag', value: 'true'}];
}
/^\/ads/i.test(uri)
是正则表达式,测试uri是否以/ads
开头
我在 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);
};
每个请求他 returns 他修改 X-Robots-Tag 的 noindex 值。
现在出现了另一个需求,我必须为特定的 uri 传递另一个 header。
例如,我想,当你到达时,请求:
插入 headers
X-Ads-Tag value: true : Exemple headers['X-Ads-Tag'] = [{key: 'X-Ads-Tag', value: 'true'}];
当收到请求时
插入 headers
Value X-Marketing-Tag: true : Exemple headers['X-Marketing-Tag'] = [{key: 'X-Marketing-Tag', value: 'true'}];
a url 将始终相同,这可能会发生变化,并且将来会有更多不同的 uri 和新标题。
Example uri:
/ads
/marketing
/hub
/gamming
放置这些常量,他给我带来到达的 uri。
const uri = response.uri;
有人可以帮助我吗?
您可以创建一个函数来检查 url 并基于 url 添加更多 headers.
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.test(uri)) {
headers['X-Ad-Tag'] = [{key: 'X-Ad-Tag', value: 'true'}];
} else if (/^\/marketing/i.test(uri)) {
headers['X-Marketing-Tag'] = [{key: 'X-Marketing-Tag', value: 'true'}];
}
/^\/ads/i.test(uri)
是正则表达式,测试uri是否以/ads