在AJAX调用上更改URL

时间:2011-12-08 17:48:20

标签: jquery ajax url django-views

我正在创建一个博客应用程序,并且我希望提供一个“保存”按钮,该按钮将通过Ajax调用更新对数据库的更改。只要我保存以前创建的博客,这很好,但是当我第一次创建博客时遇到问题。

问题是,对于任何新博客,我都有相同的网址

blogs/new/

但是,对于编辑或发布已创建的博客,我有一个像这样的网址

blogs/1/my-first-blog/

这里1是作者id,第二个字段是slug值。通过“发布”或“预览”按钮保存此表单时,我会使用这些值。我想做的是在进行save AJAX调用时以某种方式设置这些值。因此,当用户按下发布时,博客已保存在数据库中,这些变量将发送到视图,并且可以正常工作。

3 个答案:

答案 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/