【发布时间】:2012-03-28 05:03:58
【问题描述】:
我正在尝试将数据从客户端发送到服务器端 (asp.net c#),如果你真的想知道,我想发送 window.name 属性。
首先我想有一个asp:HiddenField 并在OnSubmit 事件上让一些JS 在隐藏字段中写入值。唯一的问题是我只能从PreLoad 事件到PreRenderComplete 事件访问隐藏字段值(根据this)。我正在处理的项目在OnInit 事件中有很多代码,不幸的是我无法移动它,我需要在这里使用window.name 值。
我的其他想法是添加自定义 HTTP 标头 windowId 或在 OnSubmit 事件上添加一个将参数附加到 document.location.href 的 JS。
我设法用 XMLHttpRequest setRequestHeader 从 JS 写入标头,但是,也许我在实现中做错了,这会生成 2 个请求,第一个是正常的,预期一个(单击按钮/链接...),第二个来自XMLHttpRequest。我觉得这种行为非常不自然。 您有什么建议吗?(请参阅下面的代码 sn-p)。 我不使用 AJAX。
var oReq = new window.XMLHttpRequest;
oReq.open('POST', document.location, false);
oReq.setRequestHeader("windowId", window.name);
oReq.send(null);
对于OnSubmit 钩子的想法,我没有花太多时间在上面,但我认为我必须先附加# 字符,然后再将windowId 参数附加到它的值,这样页面就不会' t 重新加载。这一点我可能是错的。无论如何,我必须在获取值后从 URL 中删除它,这样用户就不会看到讨厌的 URL。 您有什么建议吗?
好的,你有什么想法?
感谢您阅读我所有的喋喋不休,并提前感谢您的回答。
【问题讨论】:
标签: c# javascript asp.net http-headers