【问题标题】:Is there any way to redirect to a new page using ajax with response also sent to the new page有没有办法使用ajax重定向到新页面,响应也发送到新页面
【发布时间】:2018-04-16 15:58:10
【问题描述】:

我想在 ajax 为 complete/success 之后重定向到新页面。 那工作正常。但我想在我指向的新页面中查看响应。

我不确定是否有任何现有的方法可以做到这一点。

function directtoedit(object) {

    $('#edit-field-tei-document-und-0-xml').focus();
    $('#toolbar-back').show();

    clickedTitle = object;

    $.ajax({
        url: "tabs/get_old_contents.php",
        data: {
            seltitle: clickedTitle
        },
        type: 'post',
        complete: function(response) {
            location.href = "tabs/test.php"
            console.log('selectHey' + response.responseText); //Want to view response in test.php
        }
    });
}

【问题讨论】:

  • 您应该只重定向到新页面并在那里显示新信息。不要在 AJAX 响应中发送信息。如果只是警报,则显示警报,设置计时器并暂停,然后转到新页面。
  • 您的意思是我不需要更改 ajax 代码中的任何内容。我尝试在 test.php alert('object'+response.responseText);这给出了未定义的错误响应
  • 必须在切换页面或重定向之前显示警报。
  • 为什么不以get方式发送数据?比如:location.href = "tabs/test.php?response=hi&res2=Yo"
  • 是的,这很好。该警报显示正确的数据。但我想通过将它(这个响应)附加到一个空的 div 来在 test.php 中查看它。这个函数写在不同的文件中,而不是在 test.php 中

标签: javascript php ajax redirect


【解决方案1】:

您可以将response保存到本地存储并在重定向后检索。

complete: function(response){
    localStorage.setItem('someName', response);
    //...
}

在第 2 页重定向后从存储中检索响应字符串:

var response = localStorage.getItem('someName');

Browser compatibility for localStorage

您也可以使用document.cookie

【讨论】:

  • 我试过这个。警报 alert('object'+ob);给出 object[object Object] console.log('checking', ob);控制台上不显示任何内容
  • @Ara 警报不适用于对象。这在您的浏览器中是否有效:jsfiddle.net/myvc22bj ???
  • 我是按照这个 jsfiddle 链接中的方式编写的。我得到相同的警报 [object object]
  • @Ara 您是否将response 对象保存在localStorage 或response.responseText 中?
  • response.responseText 解决了这个问题。谢谢老兄:)
猜你喜欢
  • 2019-08-31
  • 1970-01-01
  • 1970-01-01
  • 2010-11-08
  • 2012-05-12
  • 2012-04-01
  • 2012-08-09
  • 2021-04-05
  • 1970-01-01
相关资源
最近更新 更多