关于post请求。一般使用两种方法,一个是form,直接submit,此时页面会跳转。另一种是ajax,无需刷新页面
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于post请求。一般使用两种方法,一个是form,直接submit,此时页面会跳转。另一种是ajax,无需刷新页面相关的知识,希望对你有一定的参考价值。
我想问的是,如果我没有用form,但想向某个php页面发送post请求,且页面能够跳转到该php页面该怎么做?像$.ajax()那样将data直接发送过去,但$.ajax()的话,页面不会跳转(其优点)。可以在success里重定向?但$_POST[]数组的值能够保持么?
感觉没能理解到本质,所以不清楚如何解决。望指教。
ajax方法执行成功后,在success事件跳转就行了。
url:"数据提交的路径",
type:"POST",
data:"key":"value",
success:function(data,status)
document.location.href=\'重定向的URL\';
);追问
谢谢回答~那我用ajax传过去的值还在么?$_POST数组中被赋的那些值生命周期周期是怎么样呢?在处理页面(php)中还能读出来么?
试了一下,似乎传不过去。跳转后,$_POST[key]没能被读出来。果然只能用form么
$.ajax()方法所中的url选项设置的路径为处理POST数据的路径,这个处理的过程是看不见的。success中跳转的路径和数据处理可能没有任何关系。
追问所以只有form可以用了么?
我是想点击在线支付后可以跳转到选择支付方式页面,并且将该行中隐藏字段里的订单id和费用传递过去的。感觉每行写一个form有点浪费,所以在考虑有没有其他方法。不行的话,就只有改用form了
传参方法:
var map = ;
map['no'] = 'no';
map['subject'] = "dsf";
function Post(map,URL)
//创建form表单
var temp_form = document.createElement("form");
temp_form.action = URL;
//如需打开新窗口,form的target属性要设置为'_blank'
//temp_form.target = "_self";
temp_form.method = "post";
temp_form.style.display = "none";
$.each(list,function(key,value)
var opt = document.createElement("input");
opt.type = "hidden";
opt.name = key;
opt.value = value;
temp_form.appendChild(opt);
)
document.body.appendChild(temp_form);
temp_form.submit(); //提交数据
return temp_form;
参考技术B 构造一个json对象,用ajax传过去
以上是关于关于post请求。一般使用两种方法,一个是form,直接submit,此时页面会跳转。另一种是ajax,无需刷新页面的主要内容,如果未能解决你的问题,请参考以下文章
对于网页中的form元素,method 属性的get和post有何不同?
表单的提交有两种方式:GET和POST,这两种方式的区别是啥?
Post请求的两种编码格式:application/x-www-form-urlencoded和multipart/form-data