我正在尝试编写Java脚本脚本,该脚本基于用户是否正确登录将其重定向到单独的PHP脚本。问题是,我似乎无法弄清楚如何获取请求的文件参数,以便可以查看我要查找的请求是否存在。如何在Java脚本中获取请求的文件参数? 很抱歉造成误解,文件属性的意思是以下每个请求的“文件”部分下的内容。 example
因此,如果在数据包的文件选项卡下设置了某个文件,我该如何区分?
答案 0 :(得分:-1)
不清楚您要问什么。 “使我可以查看我正在寻找的请求是否存在”部分告诉我,您想调试您的网站,或者至少是我对此的解释。
如果您使用的是Chrome或Firefox Developer Edition,则可以按F12(或CTRL + SHIFT + J)打开开发者控制台。
转到“网络”标签,您将看到所有XMLHTTPRequest。
单击特定请求,您将看到其详细信息。
基本的XmlHttpReuqest像这样:
function reqListener () {
console.log(this.responseText);
}
var oReq = new XMLHttpRequest();
oReq.addEventListener("load", reqListener);
oReq.open("GET", "http://www.example.org/example.txt");
oReq.send();
然后您在回调函数reqListener中获得请求的结果。
另请参阅https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest
如果要获取请求处理程序的URL,则如下所示:
function reqListener (e) {
//console.log(this.responseText);
console.log(e);
console.log(e.currentTarget.responseURL);
}
var oReq = new XMLHttpRequest();
oReq.addEventListener("load", reqListener);
oReq.open("GET", "https://stackoverflow.com/questions/58407228");
oReq.send();
如果您想在网址中获取一个名为“ file”的参数,则类似于
function getUrlVars(urlHref)
{
var vars = [], hash;
var hashes = urlHref.slice(urlHref.indexOf('?') + 1).split('&');
var i;
for (i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(decodeURIComponent(hash[0]));
vars[decodeURIComponent(hash[0])] = decodeURIComponent(hash[1]);
} // Next i
return vars;
} // End Function getUrlVars
var dictParameters = getUrlVars("http://www.example.com/handler?file=bla.bin");
if (dictParameters.contains("file"))
{
console.log(dictParameters["file"]);
}
对于XMLHTTPRequest,它没有名为file的属性。
另外,这是2019年,您应该using the FETCH-API和async和await,而不是不使用promises的XMLHttpRequest-API。
编辑: 嗯,我明白了:
如果您有网址,例如
var url = "http://www6.scratch99.com/web-development/javascript/test.js?abc=def";
您这样做
var url = "http://www6.scratch99.com";
var urlParts = url.replace('http://','').replace('https://','').split(/[/?#]/);
var domain = urlParts[0];
获取域部分。然后,您减去域(+ protocol),并以?结尾。或#:
完整代码:
var url = "http://www6.scratch99.com/web-development/javascript/test.js?abc=def";
// var url = "http://www6.scratch99.com";
// var url = "http://www6.scratch99.com?test=123";
var protocol = url.substr(0, url.indexOf(":") + 3)
var urlParts = url.substr(protocol.length).split(/[/?#]/);
var domain = urlParts[0];
var fileParts = url.substr(protocol.length + domain.length);
var file = fileParts.split(/[?#]/)[0];
,如果只需要文件名:
var pathParts = file.split('/');
var fileOnly = pathParts[pathParts.length-1];