Ajax - 在“成功”之后转到另一个页面从那里的url中检索用户id

时间:2015-01-30 13:43:29

标签: javascript ajax json rest

var JSONonj = {"name": "James","age":"25"};
var data = "This data i would like to retrieve and print in the main.html page after success call in ajax.";

$.ajax({
        url: "/user",
        type: "POST",
        data: JSONobj,
        dataType: "json",
        success: function() {
            window.location.href = "main.html";
        },
        contentType: "application/json"
});

这是合约。成功之后我想重定向到main.html,当我到达那里时,我想在那里检索和打印数据变量。

重定向工作正常。但我无法在那里收到数据。

4 个答案:

答案 0 :(得分:7)

有两种主要方法可以实现这一目标:

  1. 以某种方式将数据发送到服务器(请参阅其他答案以了解可能的方法)
  2. 使用浏览器的localStorage

    success: function() {
        localStorage.setItem('myMainKey', data);
        window.location.href = "main.html";
    }
    
    // in main.html's javascript :
    var data = localStorage.getItem('myMainKey');
    if (data !== undefined) {
        //do something
    }
    
  3. 注意:如果您想存储和检索完整的javascript对象,则必须使用JSON.stringify() / JSON.parse()来存储/检索它。

答案 1 :(得分:0)

您必须在查询字符串中发送该数据并使用javascript重新构建它。或者您必须使用该json数据POST到处理程序/控制器(谁知道您正在使用...)并重新构建它...如果您要更改将要发送数据的位置,则无论如何。

如果您使用的是HTML5,那么LeGEC建议本地存储将是一个不错的选择。

Storing Objects in HTML5 localStorage

答案 2 :(得分:0)

如果您正在使用jQuery,可以应用此功能。

var redirect = 'http://www.example.com/';
$.redirectPost(redirect, {x: 'exemplo', y: '123'});

// jquery extend function
$.extend(
{
    redirectPost: function(location, args)
    {
        var form = '';
        $.each( args, function( key, value ) {
            value = value.split('"').join('\"')
            form += '<input type="hidden" name="'+key+'" value="'+value+'">';
        });
        $('<form action="' + location + '" method="POST">' + form + '</form>').appendTo($(document.body)).submit();
    }
});

答案 3 :(得分:0)

你也可以这样做: -

#circle {
  position: relative;
  background-color: #09f;
  width: 30px;
  height: 30px;
  border-radius: 200px;
}
.text-inner {
  position: absolute;
  top: 5px;
  right: 3px;
  color: #fff;
}
.text-outer {
  position: absolute;
  top: 5px;
  right: -20px;
}

在main.html

<!DOCTYPE html>
<div id="circle">
  <div class="text-inner">T</div>
  <div class="text-outer">ext</div>
</div>