多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > http編程中的get和post混合使用方式

http編程中的get和post混合使用方式

來源:程序員人生   發布時間:2013-12-09 10:39:32 閱讀次數:3239次

問題來源于get和post的特點和限制。對于get請求,我們可以很方便的使用window.opener的方式與父頁面進行通訊,但是根據http協議的規定,url最大長度是2083個字節,可以用于GET傳遞數據的長度是2048個字節。對于post請求,雖然沒有最大長度的限制,卻不能方便的使用window.opener與父頁面進行通訊。

關于如何使用javascript自動將一段get請求轉變成一個post請求,網上有很多的方法,其主要思想就是動態構造一個iframe,并將get請求中的url參數值賦給input控件,最后設置form的action地址并調用submit方法。

解決方法,http://www.wfuwu.com/a/view/9274.html

這里轉載如下:

var PostNewWin = function(url){
var urlArr = url.split("?");
var postUrl = urlArr[0];
var postData = urlArr[1];
var iframe = document.getElementById("postData_iframe");
if(!iframe){
iframe = document.createElement("iframe");
iframe.id = "postData_iframe";
iframe.scr= "about:blank";
iframe.frameborder = "0";
iframe.style.width = "0px";
iframe.style.height = "0px";

var form = document.createElement("form");
form.id = "postData_form";
form.method = "post";
form.target = "_blank";

document.body.appendChild(iframe);
iframe.contentWindow.document.write("<body>" + form.outerHTML + "</body>");
}
iframe.contentWindow.document.getElementById("postData_form").innerHTML = "<input name='postData' id='postData' type='text' value='" + postData + "'/>";
iframe.contentWindow.document.getElementById("postData_form").action = postUrl;
iframe.contentWindow.document.getElementById("postData_form").submit();
};
例如原來有一個函數,使用get請求打開新頁面
function openNewWindow()
{
var url = http://www.website.com/page1.aspx?p1=v1&p2=v2;
var win =window.open(url);
}
因為ur的長度問題,現在改為使用post方式提交,如下所示:
function openNewWindow()
{
var url = http://www.website.com/page1.aspx?p1=v1&p2=v2;
//var win =window.open(url);
PostNewWin(url);
}

這里有一個問題就是,使用這種方式后,就無法使用window.opener與父頁面進行交互了,因為通過這個函數,已經將get請求變成一個post請求了。為了可以使用post的方式提較大數據,同時也可以使用window.open(url)方式的window.opener與父頁面通訊,在這里做一點小的改版,首先使用window.open(url)時候,增加一個參數,指定打開窗口的名稱,,如下所示:
function openNewWindow()
{
var url = http://www.website.com/page1.aspx?p1=v1&p2=v2;
var winName = "";
var win =window.open("about:blank",winName );
PostNewWin(url,winName);
}
同時修改PostNewWin函數,將這個新窗口的句柄傳遞給這個函數,將post請求的target設置為這個參數,如下所示:
var PostNewWin = function(url,winName){
.........
form.target = winName;
.......
};
這樣就可以同時使用post和get兩種方式的優點了。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美日韩三级 | 亚洲一二三区在线观看 | 亚洲乱码一区二区三区国产精品 | 亚洲图片小说综合 | 久草在线观看福利视频 | 九月婷婷天天澡天天添天天爽 | 国产三级精品三级在线观看 | 高清在线亚洲精品国产二区 | 77777_亚洲午夜久久多人 | 国产精品久久毛片 | 精品久久久中文字幕一区 | 日本视频一区二区三区 | 欧美成人国产一区二区 | 亚洲天堂中文字幕在线 | 国产大象视频一区二区 | 亚洲资源站资源网在线 | 黄色a级片在线 | 国产成人乱码一区二区三区 | 亚洲国产系列一区二区三区 | 羞羞人成午夜爽爽影院 | 国产一级淫片a免费播放口欧美 | 亚洲成人一级片 | 天堂日本 | 国产一区二区在线不卡 | 日本一区二区三区不卡在线看 | 国产91久久精品一区二区 | 亚洲图片另类 | 黄色h视频| 最近中文字幕免费版在线 | 操操操网站 | 偷拍区自拍区 | 欧美精品免费一区欧美久久优播 | 无遮挡很爽很污很黄很色的网站 | 日韩一级片免费看 | 日本免费中文字幕 | 在线观看www视频 | 欧美人与物videos另 | 一级毛片女人18水真多 | 手机成人在线视频 | 欧美抽搐一进一进一出 | 最近免费中文字幕大全视频 |