我正在创建一个博客应用程序,并且我希望提供一个“保存”按钮,该按钮将通过Ajax调用更新对数据库的更改。只要我保存以前创建的博客,这很好,但是当我第一次创建博客时遇到问题。
问题是,对于任何新博客,我都有相同的网址
blogs/new/
但是,对于编辑或发布已创建的博客,我有一个像这样的网址
blogs/1/my-first-blog/
这里1是作者id,第二个字段是slug值。通过“发布”或“预览”按钮保存此表单时,我会使用这些值。我想做的是在进行save AJAX调用时以某种方式设置这些值。因此,当用户按下发布时,博客已保存在数据库中,这些变量将发送到视图,并且可以正常工作。
答案 0 :(得分:2)
好吧,为了在AJAX调用完成后更改url,你可以设置:
window.location = '/blogs/1/my-first-blog/';
但是,AJAX可能不是处理此请求的最佳选择。如果您只是在请求完成后重定向到新页面,为什么要使用AJAX?
如果请求成功,提交没有AJAX的表单并为新页面发送重定向标题将是更标准的做法。
答案 1 :(得分:1)
将作者ID,slug值和正在创建的博客的文本传递给Web服务或webmethod,并创建文件夹并将博客数据保存在服务中。
然后,您只需编辑要传递给window.location
的字符串。
var id = "userid945";
var slugvalue = "foo";
var url = "/blogs/" + id + "/"+slugvalue+"-first-blog/
window.location = url;
答案 2 :(得分:0)
我想通过前端框架现在解决路由问题来更新此信息。 VueJS就是一个例子。 https://router.vuejs.org/