繁体   English   中英

关于Kitura的问题“ response.redirect”

[英]Questions about “response.redirect” on Kitura


嗨,大家好,
我对Web服务器,客户端和AJAX不熟悉。 我在Kitura上遇到了重定向问题。
删除路由可以成功重定向到“ / api / v1 / users / list”。(我通过打印功能看到一条消息)
但浏览器不会重新加载/ api / v1 / users / list的数据(刷新)。
请遵循以下代码,谢谢!

Q1-0)我需要为浏览器执行手动刷新吗?
Q1-1)如果可以的话,哪一方更好? (服务器端或浏览器端)
Q2)当我使用AJAX删除方法时,需要手动执行刷新操作吗?

Server side method "delete"
---------------------------
...
router.delete("/api/v1/users/delete/:id" ....
_ = try? response.redirect("/api/v1/users/list", status: .seeOther)
...

Server side method "get"
------------------------
...
//list all users.
//each user have a delete button that performs AJAX delete method to "/api/v1/users/delete/:id".
router.get("/api/v1/users/list", ... 
print("get /api/v1/users/list")
...

简短的答案:

Q1-0 :就您而言,是的。

Q1-1 :您的情况是浏览器。

问题2 :您的情况是。

更长的答案:

这实际上取决于您的应用程序的体系结构:

  1. 客户端/服务器:您构建了一个通过REST端点发送/接收JSON或XML的API。 最重要的是,您将构建一个使用AJAX与该API通信的JavaScript客户端。 这就是您似乎正在做的。 但是,您的AJAX请求应仅发送/接收JSON或XML数据。 任何页面更新,重新加载或重定向都应在客户端进行。

  2. 服务器端 :这里,大多数逻辑都发生在服务器上。 您使用HTTP GET和POST来请求页面和提交表单。 然后,服务器处理这些请求,并返回HTML页面供浏览器呈现。 有关使用Kitura和Stencil的示例,请参见https://github.com/svanimpe/swift-blog

客户端/服务器更灵活,因为您可以为同一个API构建多个客户端(Web以及本机应用程序),但也更复杂,因为它是分布式体系结构,通常涉及多种编程语言和一些代码重复。 服务器端应用程序是整体的,并且涉及很少的非Swift代码(对于您而言),因此对于初学者而言通常更易于构建。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM