gpt4 book ai didi

JavaScript 结果破解不起作用

转载 作者:行者123 更新时间:2023-11-30 05:50:23 24 4
gpt4 key购买 nike

问题:为了让这个 hack 发挥作用,我缺少什么?

对于我正在开发的 MVC 应用程序,我遇到了一个“不寻常”的案例。

我们使用 ActiveReports 生成某些报告,对于被允许的用户,在我们的布局上显示一个 ActionLink,允许访问这些报告,这些报告会在新窗口中打开。此项目的方向是所有报告都应在新窗口中打开。

但是,有一个异常值我无法应用简单的 ActionLink 修复,因为我们使用一个覆盖层来访问此报告,该覆盖层几乎由一个下拉菜单和一个文本字段组成。这些的组合被馈送到 Controller , Controller 根据给定的条件返回到操作的重定向(有一些特定的检查应该只发生在服务器上,因此我们为什么不在这个覆盖层上用 JavaScript 这样做对话。)

现在,我不会让像 MVC 这样的小限制不允许我重定向到一个新窗口来阻止我,所以我尝试了给定的 JavaScriptResult hack,因为这已经是一次性的情况了,它似乎是解决我的问题的最简单和最可维护的解决方案,尽管它是一个 hack:

public ActionResult GenerateFooReport(string someInfo)
{
// HACK: MVC does not allow redirects to open a new window, so
// return some JavaScript that forces a new window open.
string script = "window.open('/controller/action?param=" + someInfo + "');";
return JavaScript(script);
}

当然,当我运行导致此方法触发的操作(Foo 的输入,正确的下拉选项)时,我看到以下输出:

window.open('/controller/action?param=foo')

...而不是那段 JavaScript 应该自动打开的报告。

虽然我知道这种用法(在大多数情况下)被认为是一种反模式,但我不能随意修改 UI 以适应更可接受的用法。

问题:为了让这个 hack 发挥作用,我缺少什么?

编辑:尝试了一个替代实现,但也没有用:

private ActionResult GenerateFooReport(string someInfo)
{
// HACK: MVC does not allow redirects to open a new window, so
// return some JavaScript that forces a new window open.
string script = "<script>window.open('/controller/action?param=" + someInfo + "');</script>";
return Content(script);
}

这同样没有效果。

编辑: 又一次不成功的黑客尝试:

private ActionResult GenerateFooReport(string someInfo)
{
// HACK: MVC does not allow redirects to open a new window, so
// return a redirect to a url that executes javascript that
// opens the new window.
string script = "javascript:window.open('/controller/action?param=" + someInfo + "');";
return Redirect(script);
}

编辑: 这种情况的邪恶影响很大!新的方向是避免在 Controller 中进行这些邪恶的操作,而是在 JavaScript 中进行。话虽如此,我仍然对让 hack 起作用的实际方法感到好奇,只是为了我自己的启发。

最佳答案

尝试直接调用 jquery .load 函数。

return JavaScript("$('#targetdiv').load('controller/action?param="+someInfo+"');");

关于JavaScript 结果破解不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15228016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com