传参方式由url携带改为post提交

参考:http://www.cnblogs.com/logon/p/3218834.html

我们这里使用了iframe嵌套form表单POST提交,很简单,却能满足get|post等任何复杂情况的要求;缺点是没有返回值。

针对需要的地方加上一个iframe嵌套并塞入隐藏form表单,然后获取登录表单的值赋予到隐藏form表单提交即可完成跨域POST|get提交。

function smal_send(){
var user = $("#user_name").val();
var pass = $("#password").val();
var form =$("<form action='http://www.demo.com/login.php' method='post'>" +
"<input type='hidden' name='user_name' value=''/> " +
"<input type='hidden' name='password' value=''/> " +
"</form> ");
$( "#SMAL" ).remove();//清空节点
$( "body").append("<iframe id='SMAL' name='SMAL' style='display: none'></iframe>");//载入iframe
(function(){
$( "#SMAL" ).contents().find('body').html(form);//将form表单塞入iframe;
$( "#SMAL" ).contents().find("form input[name='user_name']").val(user);
$( "#SMAL" ).contents().find("form input[name='password']").val(pass);
$( "#SMAL" ).contents().find('form').submit();//提交[ps,这里是提交到demo.com,跨域]
}());
setTimeout(function(){//如果需要可以跳转到demo.com
window.location.href="http://www.demo.com/index.php";
},100)
}
 

javascript是要逆天的。嗯嗯,我觉的是。

参考:
 1:http://huangqiqing123.iteye.com/blog/1754108
 
 2:这里介绍了基本的跨域提交方式 http://blog.csdn.net/china_skag/article/details/7410918
 
 3:群友讨论。

 4:发散知识点:http://www.cnblogs.com/yjmyzz/archive/2011/04/26/2029699.html

&&

 function payOrderBook(url, pmap){
var key, val, hidden;
var formId = 'dspPayForm' + new Date().getTime();
var form = $('<form action="' + url + '" method="POST" name="' + formId + '" id="' + formId + '"></form>');
if(pmap){
for(key in pmap){
if(pmap.hasOwnProperty(key)){
hidden = $('<input type="hidden" name="' + key + '" />');
hidden.val(pmap[key]);
hidden.appendTo(form);
}
}
}
//set attributes
$(form).css('position', 'absolute');
$(form).css('top', '-1200px');
$(form).css('left', '-1200px');
$(form).appendTo('body');
$(form).submit();
}
上一篇:《C语言程序设计现代方法》第2章 C语言基本概念


下一篇:[TC]Total Command显示文件夹大小