javascript - Playframework:通过Javascript通过location.href调用 Controller 的action

标签 javascript scala url playframework

有没有办法通过Javascript调用@controllers.app.test()

使用中一直运行良好

location.href = '@controllers.app.test()'

不知何故,这个location.href变成了一个实际的URL:

127.0.0.1:9001/admin/@controllers.app.test()

谁能帮我解决这个问题吗?

最佳答案

@controllers.app.test()是在服务器端计算的。您的 HTML 位于 View 中并由服务器处理,这就是它变为 /admin/@controllers.app.test() 的原因。 。你的Javascript只是在一个公共(public)文件夹中,所以它不会被处理。

您可以执行以下操作之一:

  1. 将 JS 文件放入 View 中(与放置“工作正常”的 HTML 的位置相同)。
  2. 将 JS 对象添加到 HTML,如 <script> var myAction="@controllers.app.test()"</script>然后使用 myAction在JS中。
  3. 使用 Java 脚本路由器:

    3.1。 https://www.playframework.com/documentation/2.6.x/ScalaJavascriptRouting

    3.2。 Convert a javascript variable to scala in play framework

    3.3。 How to update src of a img from javascript in a play framework project?

关于javascript - Playframework:通过Javascript通过location.href调用 Controller 的action,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49336004/

相关文章:

javascript - Acronyms.parse([object].function) 不是一个函数

scala - Lagom 的多部分表单错误

python - 如果它不以 http 开头,我如何将 http 添加到 url?

c# - 如何使用 C# 捕获特定 url 的图像?

javascript - kibana 的 Vega 可视化 - 聚合和访问文档字段

javascript - 在 Chrome 控制台上重新加载后保持 Javascript 运行

javascript - Bluebird 对一系列功能的 promise

scala - 使用 json4s 时如何设置 Jackson 解析器功能?

scala - 类型安全堆栈 scala 错误

C# Web Api action方法自动解码查询参数