百度云加速从不同URL取JSON后合并返回示例

// 示例 url 及 type
const url1 = 'https://www.example.com/json1';
const url2 = 'https://www.example.com/json2';
const type = 'application/json;charset=UTF-8';

// 设置 contentType
async function gatherResponse(response) {
const { headers } = response;
const contentType = headers.get('content-type');
if (contentType.includes('application/json')) {
return await response.json();
} else if (contentType.includes('application/text')) {
return await response.text();
} else if (contentType.includes('text/html')) {
return await response.text();
} else {
return await response.text();
}
}
async function handleRequest(request) {
const init = {
headers: {
'content-type': type,
},
};
// 分别取两个 URL 的 JSON
const responses = await Promise.all([fetch(url1, init), fetch(url2, init)]);
// 拼接两个 JSON
const results = await Promise.all([gatherResponse(responses[0]), gatherResponse(responses[1])]);
// 返回结果
return new Response(results, init);
}
addEventListener('fetch', event => {
return event.respondWith(handleRequest(event.request));
});

发表评论

电子邮件地址不会被公开。 必填项已用*标注

回到顶部

QQ群962782975