来自文件名的Javascript相对路径(不带windows.location)
假设我需要使用文件名的相对路径发出AJAX请求,而不使用来自文件名的Javascript相对路径(不带windows.location),javascript,ajax,Javascript,Ajax,假设我需要使用文件名的相对路径发出AJAX请求,而不使用windows.location(由于客户特定的请求) 因此,在一个缩略页面上:mywebsite/myfolder/mypagename,我需要做如下操作: $.get( "./data/mydata.json", function( data ) { .... }); $.get(“./data/mydata.json”,函数(数据){ .... }); 这样做,请求指向:mywebsite/myfolder/data/mydata
windows.location
(由于客户特定的请求)
因此,在一个缩略页面上:mywebsite/myfolder/mypagename
,我需要做如下操作:
$.get( "./data/mydata.json", function( data ) {
....
});
$.get(“./data/mydata.json”,函数(数据){
....
});
这样做,请求指向:mywebsite/myfolder/data/mydata.json
,但我需要它指向:mywebsite/myfolder/mypagename/data/mydata.json
有什么办法吗?我还尝试了
“~/data/mydata.json”
,但似乎像“/data…”
因为我的要求似乎不可能,所以在发送任何ajax调用之前,我在url上使用带有验证正则表达式的windows.location.pathname:
if (! ( /([<>]|javascript:)/.test(decodeURIComponent(apiUrl)) )) {
... do the call
} else {
window.location.href = '/404';
}
if(!(/([]| javascript:)/.test(decodeURIComponent(apirl))){
…打电话
}否则{
window.location.href='/404';
}
希望它可以帮助其他人因为我的要求似乎不可能,在发送任何ajax调用之前,我正在使用带有url验证正则表达式的windows.location.pathname: if (! ( /([<>]|javascript:)/.test(decodeURIComponent(apiUrl)) )) { ... do the call } else { window.location.href = '/404'; } if(!(/([]| javascript:)/.test(decodeURIComponent(apirl))){ …打电话 }否则{ window.location.href='/404'; }
希望它可以帮助其他人我认为如果不使用windows,您无法做到这一点。location无法使用windows。location因客户要求而无法使用。它会产生一些SAST后果,客户不想使用它。因此,请像处理图像、CSS、JavaScript等一样使用相对路径……我认为如果不使用windows,您无法执行此操作。由于客户的请求,location无法使用windows.location。它有一些SAST的后果,客户不想使用它。所以像你对图像、CSS、JavaScript等使用相对路径……这如何回答你最初的问题?它没有。这是一个演练:我让我的客户接受使用windows.location,但我对url进行了检查,以防止处理在url上编写的任何js。因此,如果有人调用这样的页面:/mypage/alert(“我会攻击你”),regexp会重定向到404。我不确定XSS会如何影响你。。。我仍然想知道为什么你不能使用相对路径。这如何回答你最初的问题?它没有。这是一个演练:我让我的客户接受使用windows.location,但我对url进行了检查,以防止处理在url上编写的任何js。因此,如果有人调用这样的页面:/mypage/alert(“我会攻击你”),regexp会重定向到404。我不确定XSS会如何影响你。。。我仍然想知道为什么不能使用相对路径。