使用POST请求跳转页面以及Ajax的POST请求实现页面跳转

  • 时间:2018-12-12 22:51
  • 来源:segmentfault
  • 作者:comzyh
  • 阅读:577
使用POST请求跳转页面以及Ajax的POST请求实现页面跳转。其实关于这个问题网上搜了一下资料,差不多都是用window.location.href来处理,但是在请求页面的地址栏中会暴露请求的参数,这是不安全的。

同事遇到一个问题,在不修改服务器配置的前提下,想要把所有的get请求转为post请求。一直觉得post请求后返回的不就是一段数据嘛,怎么返回一个html页面呢?

通过搜索,找了一个解决方法,使用jQuery 在内存中建立一个form对象,然后调用这个对象的submit方法。

用JavaScript控制POST的数据内容并跳转到B页面,需求决定我们不能在页面上使用form来提交数据。因为提交的数据是页面上几个Div的全部HTML内容(实际上是富文本编辑器),使用jQuery的html()方法取得这些HTML内容。

现在想到的思路是使用jQuery 在内存中建立一个form对象,然后调用这个对象的submit方法

var form = $("<form method='post'></form>"),input;
form.attr({"action":url});
input = $("<input type='hidden'>");
input.attr({"name":key});
input.val(value);
form.append(input);
form.submit();

上面这种方法虽然能用,但是感觉很丑,有没有更好的方法?

另外小编还在网上找到了一个更方便一点的方法,直接贴代码了:

<form method="post" action="action" id="fm"></form>
$.post(url,{
    method:"regist",
    userName:$nameEle.val(),
    email:$emailEle.val(),
    password:$passwordEle.val()
    },
    function(data) {
        //注册成功页面跳转,
        var fm=document.getElementById("fm");
        fm.submit();
    }
);

以上就是关于“使用POST请求跳转页面以及Ajax的POST请求实现页面跳转”的全部内容了,其实关于这个问题网上搜了一下资料,差不多都是用window.location.href来处理,但是在请求页面的地址栏中会暴露请求的参数,这是不安全的。如果你看到了这个问题,并且有更好的方法,请告知我呦,多谢~~