将 REST 请求从 HTML 按钮发布到 Grapevine

Posted

技术标签:

【中文标题】将 REST 请求从 HTML 按钮发布到 Grapevine【英文标题】:Post REST request from HTML button to Grapevine 【发布时间】:2020-10-06 10:31:56 【问题描述】:

我正在尝试使用 Grapevine 让我的 .NET 应用程序与网页交互。我目前正在学习中。

我有以下 REST 路由代码:

    <RestRoute(HttpMethod:=HttpMethod.[GET], PathInfo:="/controller")>
    Public Function PlayerControl(ByVal context As IHttpContext) As IHttpContext
        Dim word = If(context.Request.QueryString("word"), "what?")
        Console.WriteLine(word)
        context.Response.SendResponse(word)
        Return context
    End Function

在我的网络表单上我有:

 <form action="http://localhost:1234/controller" method="post">
         <input type="submit" name="?word=play" value="PLAY"/>
 </form>

帖子到达我的应用程序。我可以在控制台窗口中看到它。但它总是到达默认路由:

   <RestRoute>
    Public Function HelloWorld(ByVal context As IHttpContext) As IHttpContext
        Console.WriteLine(context.ToString)
        context.Response.SendResponse("Message arrived at dfault window")
        Return context
    End Function

我做错了什么?

【问题讨论】:

【参考方案1】:

您的默认路由在 playercontrol 路由之前注册。默认路由一响应,playercontrol路由就不会被调用。

要么删除默认路由,要么(如果您使用默认路由扫描器而不是手动注册路由)确保默认路由方法位于类中的 playercontrol 路由之后。如果这些路由不在同一个类中,请确保具有默认路由的类是

【讨论】:

以上是关于将 REST 请求从 HTML 按钮发布到 Grapevine的主要内容,如果未能解决你的问题,请参考以下文章

如何从 JavaScript 调用 REST Web 服务 API?

将 JSON POST 请求从一个 REST API 转发到另一个

将 POST 请求从一个 REST API 转发/重定向到另一个

将请求从 example.com:8000(旧 REST API)转发到 AWS 上的 api.example.com(新 REST API)

如何从 HTML 表单调用现有的 REST api?

从 HTML 表单中获取 spring-boot REST 请求参数中的 null