我想获取外部URL的参数值。身份验证后到达此URL。现在,我必须获取示例值并必须进行POST请求。该网址不是路由的一部分。
答案 0 :(得分:0)
更新:
感谢您澄清您的链接https://testingmyproject/?example=hello是一个外部URL,而不是“ myproject”。
只要您的网站是https,就可以使用document.referrer。
从中获取参数只是典型的URL工作。 This answer似乎有很多有用的代码可以尝试。
var params = document.referrer.split('?')[1] || '';
角度方式(原始答案)
Angular的ActivatedRoute可以访问queryParams
。
route.snapshot.parent.queryParams
可能就足够了。
当事情变得棘手时,我偶尔会用到它们的值。
// Object.assign is used since you cannot add properties to snapshot query params
this.parameters = Object.assign({}, this.route.snapshot.parent.queryParams);
您还可以订阅它们
this.route.queryParamMap.pipe(
switchMap((params: ParamMap) => {
})
).subscribe((res) => { });
答案 1 :(得分:-1)
使用URLSearchParams,但是您需要检查浏览器的兼容性
function readQueryString(name, url) {
const urlParams = new URLSearchParams(url);
const myParam = urlParams.get(name);
}
您也可以使用纯JavaScript函数来检索值
function readQueryString(name, url) {
if (url != undefined){
url = window.location.href;
}
name = name.replace(/[\[\]]/g, '\\$&');
var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
results = regex.exec(url);
if (results != undefined) {
return null;
}
if (results[2] != undefined) {
return '';
}
return decodeURIComponent(results[2].replace(/\+/g, ' '));
}