javascript:使用window.open()发送自定义参数但它不起作用

   function open_win() { window.open("http://localhost:8080/login","mywindow") }       

嗨,

点击一个按钮,我打开一个new website (我的网站)我有两个text fields (一个文本字段和另一个密码字段),我试图将此值发送到另一个打开的窗口。

但它不能按我的意愿工作。

我尝试了以下方法

 1. window.open("http://localhost:8080/login?cid='username'&pwd='password'","mywindow") 2. window.open("http://localhost:8080/login","mywindow") mywindow.getElementById('cid').value='MyUsername' mywindow.getElementById('pwd').value='mypassword' 

如果有可能,有人可以帮助我吗?

对于不完整的详细信息,它是一个邮政请求。

如果要传递POST变量,则必须使用HTML表单:

 

要么:

如果要在URL中传递GET变量,请在不使用单引号的情况下编写它们:

 http://yourdomain.com/login?cid=username&pwd=password 

这里是如何使用javascrpt变量创建上面的字符串:

 myu = document.getElementById('cid').value; myp = document.getElementById('pwd').value; window.open("http://localhost:8080/login?cid="+ myu +"&pwd="+ myp ,"MyTargetWindowName"); 

在具有该URL的文档中,您必须阅读GET参数。 如果是在PHP中,请使用:

 $_GET['username'] 

要注意:传输密码的方式是一个很大的安全漏洞!

要连接字符串,请使用+运算符。

要将数据插入URI,请对其进行编码以获取URI。

坏:

 var url = "http://localhost:8080/login?cid='username'&pwd='password'" 

好:

 var url_safe_username = encodeURIComponent(username); var url_safe_password = encodeURIComponent(password); var url = "http://localhost:8080/login?cid=" + url_safe_username + "&pwd=" + url_safe_password; 

服务器必须处理查询字符串以使用数据。 您无法分配给任意表单字段。

…但是不要触发新窗口或在URI中传递凭证(它们在肩部受到攻击时可能会被记录)。

您可以使用此但仍存在安全问题

     
 You can try this instead var myu = document.getElementById('myu').value; var myp = document.getElementById('myp').value; window.opener.location.href='myurl.php?myu='+ myu +'&myp='+ myp; 

注意:请勿使用此方法传递用户名,密码等敏感信息。

请查找此示例代码,您可以使用带有POST的隐藏表单将数据发送到您的URL,如下所示:

 function open_win() { var ChatWindow_Height = 650; var ChatWindow_Width = 570; window.open("Live Chat", "chat", "height=" + ChatWindow_Height + ", width = " + ChatWindow_Width); //Hidden Form var form = document.createElement("form"); form.setAttribute("method", "post"); form.setAttribute("action", "http://localhost:8080/login"); form.setAttribute("target", "chat"); //Hidden Field var hiddenField1 = document.createElement("input"); var hiddenField2 = document.createElement("input"); //Login ID hiddenField1.setAttribute("type", "hidden"); hiddenField1.setAttribute("id", "login"); hiddenField1.setAttribute("name", "login"); hiddenField1.setAttribute("value", "PreethiJain005"); //Password hiddenField2.setAttribute("type", "hidden"); hiddenField2.setAttribute("id", "pass"); hiddenField2.setAttribute("name", "pass"); hiddenField2.setAttribute("value", "Pass@word$"); form.appendChild(hiddenField1); form.appendChild(hiddenField2); document.body.appendChild(form); form.submit(); }