我有一个Web应用程序让我们称之为server1:8080 / amcd这个应用程序中有一个设置允许用户在我在页面请求中传入自定义请求标头时自动登录。此自定义标题称为" REMOTE_USER"。
我的计划是在另一个Web应用程序上有另一个页面,我们称之为server2:8080 / ssoRedirect / test.html服务器2上的这个应用程序就像一个过滤器,我将传递一个URL参数,如server2:8080 /ssoRedirect/test.html?UserName=user1此页面将采用" user1"参数并重定向到server1:8080 / amcd页面,同时注入" user1" " REMOTE_USER"中的值页面请求。
关于如何实现这一点的任何建议?
我正在查看下面的一些简单的javascript,但无法让它工作。
<script>
var url = "http://localhost:8080/index.html?userName=user1"; // or window.location.href for current url
var usernameParam = /userName=([^&]+)/.exec(url)[1];
var result = usernameParam ? usernameParam : 'myDefaultValue';
function customHeader(remoteinput, userinput) {
var client = new XMLHttpRequest();
client.open("POST", "/log");
client.setRequestHeader(remoteinput, userinput);
}
window.location.href = "http://ephesoft.eastus2.cloudapp.azure.com:8080/dcma/";
</script>
当我使用chrome和firefox的Modify标头插件时,我能够完成这项工作。
答案 0 :(得分:7)
除非您使用XMLHttpRequest发出异步请求,否则网页无法设置HTTP请求标头。在这种情况下,您不是,您正在进行重定向,例如单击href。而不是依赖于自定义标头,取决于您的后端使用以下任何一个: