packages/core/browser-vm/src/utils/credentials.js (21 lines of code) (raw):
function isSameOriginUrl(str, origin) {
try {
// str 的格式可以被解析成 url
const url = new URL(str);
return url.origin === origin;
} catch (e) { /**/ }
try {
// str 是相对路径或绝对路径,无法被解析成 url
const url = new URL(str, origin);
return url.origin === origin;
} catch (e) {
return false;
}
}
// 某些情况下,请求静态资源需要带 cookie
export const getFetchCredentials = (url) => {
// 兼容历史逻辑
if (url.includes('console.aliyun.com') || url.includes('console.alibabacloud.com')) {
return 'include';
}
// 同域请求
if (isSameOriginUrl(url, location && location.origin)) {
return 'include';
}
return 'omit';
};