为什么会导致404错误
(function(){
var getownProperties = Object.keys(window);
var propsLen = getownProperties.forEach(function(e,i,a){
window[e] = undefined;
});
})()
答案 0 :(得分:1)
当您遇到window.location = undefined
的情况时,您正在使用API打开其他网址。在这种情况下,undefined
将被解释为字符串,即字符串'undefined'
,它会从当前页面更改为相对网址./undefined
。
如果您在http://example.com上尝试此操作,window.location = undefined
会重定向到http://example.com/undefined。在大多数域名中,可能会出现不存在的页面,因此404,在其他域名上,您可能会触发其他一些行为。
您实际上无法替换许多/大多数全局属性,因为它们被实现为不可配置的属性设置器(意味着函数将处理您尝试的分配,在window.location
触发重定向的情况下)。 E.g:
const foo = {
set bar(value) {
console.log("You can't replace me so easily,", value);
}
};
foo.bar = 'baz';