【问题标题】:Retrieve query string data from external form从外部表单中检索查询字符串数据
【发布时间】:2013-07-19 04:52:40
【问题描述】:

我的网站上有一个页面用于在另一个网站上注册。另一个网站给了我一个提交表单的网址。我正在使用带有以下 .attr("method", "GET").attr("target", "_blank")... 和其他一些代码的 aspnetForm。将表单提交到他们的站点后,新的空白窗口将充满一条消息,说明表单提交是否成功。新页面包含来自其他网站的 url,其中包含一个查询字符串,其中包含对我有用的数据,因此我的应用程序实际上知道提交是否成功,而不仅仅是对用户的视觉提示。我的应用程序有没有办法从这个其他窗口检索查询字符串数据?

谢谢

【问题讨论】:

  • 您是否考虑过使用 window.open 在 GET 请求中将数据发送到其他站点?这样,您可以在自己的页面中存储对打开窗口的引用,然后在需要时访问该窗口的 DOM。
  • 我已经调查过了。不过,我仍在努力掌握另一个窗口。当我尝试引用 window.open 时,我得到一个空值。来自其他站点的窗口是否会影响我获得参考的能力?我发现了一些关于取消选中 IE 中的“启用保护模式”设置的内容,这使我能够获得对象引用,但我认为取消选中这不是一个很好的解决方案。我也在研究 window.postMessage,但还没有弄清楚如何利用它。
  • 是的,我猜你是对的,如果你被允许访问其他站点,那将是一个安全风险(跨站点脚本/XSS)。我不是 XSS 方面的专家,但我认为如果你想要这种访问权限,你必须与其他网站的所有者合作。关闭 IE 的默认安全设置听起来很冒险,所以我支持你。也许其他人可以为此添加一些输入。
  • 好的,谢谢迈克尔的意见。

标签: c# javascript html asp.net forms


【解决方案1】:

如果你得到的返回网址是https://other-site.apsx?usefulData=blah

您可以使用以下代码从后面的代码中获取:

var queryString = Request.QueryString["usefulData"];

这将为您提供usefuleData 的值,即blah

【讨论】:

  • 请求和响应都是通过javascript完成的,所以在这个过程中并没有真正回调服务器代码。收到新窗口中的响应后,是否有推荐的方法让两者(Javascript 和 .Net)相互通信?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 2016-02-05
  • 2012-03-13
  • 1970-01-01
相关资源
最近更新 更多