【问题标题】:Change url on AJAX call更改 AJAX 调用的 url
【发布时间】:2012-01-16 03:27:08
【问题描述】:

我正在制作一个博客应用程序,并且我想提供一个保存按钮,该按钮将通过 Ajax 调用更新对数据库的更改。只要我保存以前创建的博客就可以了,但是我第一次创建博客时遇到了问题。

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

blogs/new/

但是,除了编辑或发布已经创建的博客之外,我有一个这样的网址

blogs/1/my-first-blog/

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

【问题讨论】:

    标签: jquery ajax url django-views


    【解决方案1】:

    好吧,为了在 AJAX 调用完成后更改 url,您需要设置:

    window.location = '/blogs/1/my-first-blog/';

    但是,也许 AJAX 不是处理此请求的最佳选择。如果你只是在请求完成后重定向到一个新页面,你为什么要使用 AJAX?

    如果请求成功,提交没有 AJAX 的表单并为新页面发送重定向标头将是一种更标准的做法。

    【讨论】:

      【解决方案2】:

      将正在创建的博客的作者 ID、slug 值和文本传递给网络服务或网络方法,然后创建文件夹并将博客数据保存在服务中。

      然后你可以编辑你想要传递给window.location的字符串。

      var id = "userid945";
      var slugvalue = "foo";
      
      var url = "/blogs/" + id + "/"+slugvalue+"-first-blog/
      
      window.location = url;
      

      【讨论】:

        【解决方案3】:

        我想更新此信息,因为前端框架现在解决了路由问题。 VueJS 就是一个例子。 https://router.vuejs.org/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-09-25
          • 1970-01-01
          • 2010-11-11
          • 2015-10-10
          • 1970-01-01
          相关资源
          最近更新 更多