如何将JSON发布到另一个页面并转到该页面?

时间:2014-07-25 13:58:55

标签: javascript jquery json angularjs post

我们是否只能使用javascript(jQueryAnjularJS,无论如何,但不使用表单)来获取另一个带有一些JSON作为POST请求体的页面?

这意味着,我希望将一段javascript代码写为提交按钮的动作代码。它将引导我使用带有一些JSON数据的POST请求到另一个页面。

4 个答案:

答案 0 :(得分:1)

您可以使用包含内部数据的输入动态创建隐藏表单,并将其提交到所需地址

使用jQuery的示例:

var url = 'index.html';
var data = {
  a: 1,
  b: { a: 1, b: 2},
  c: [1, 2, 3]
};

function appendData($form, prefix, data) {
  function append(k, data) {
    if (prefix !== '') {
      appendData($form, prefix + '[' + k + ']', data[k]);
    } else {
      appendData($form, k, data[k]);
    }
  }
  if (data instanceof Object) {
    if ($.isArray(data)) {
      for (var i = 0, l = data.length; i < l; i++) {
        append(i, data);
      }
    } else {
      for (var k in data) {
        append(k, data);
      }
    }
  } else {
    var inp = $('<input type="hidden" name="' + prefix + '">').val(data);
    $form.append(inp);
  }
}
var $form = $('<form style="display:none;" action="' + url + '" method="post"/>');

appendData($form, '', data);
$('body').append($form);
$form[0].submit();

http://plnkr.co/edit/bM4oAj7TZNWfjkLVWMrY

答案 1 :(得分:0)

如果要在浏览器中更改phyiscal页面,则必须让浏览器执行此操作。您可以在后台安装AJAX,但这不会影响浏览器页面。

让浏览器更改页面的最简单方法是将window.location属性设置为新页面的URL。但请注意,您只能以这种方式GET

我建议做一个AJAX POST,然后返回一个URL,你可以让borowser显示你想要的页面。

答案 2 :(得分:0)

答案 3 :(得分:0)

如果您尝试访问预定义页面并传输数据包,则可以将数据编码到查询字符串中(如果它只是少量数据)。

或者,您可以将其与HTML 5本地存储一起存储,更改window.location以加载新页面,然后从本地存储中获取信息。