日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
淺析get和post在HTTP編程中的使用方式

本文將要介紹如何在HTTP編程中,get和post兩個(gè)關(guān)鍵字的混合用法,希望通過本文,能對(duì)關(guān)鍵字的最大長(zhǎng)度以及功能有所了解。

問題來源于get和post的特點(diǎn)和限制。對(duì)于get請(qǐng)求,我們可以很方便的使用window.opener的方式與父頁面進(jìn)行通訊,但是根據(jù)http協(xié)議的規(guī)定,url最大長(zhǎng)度是2083個(gè)字節(jié),可以用于GET傳遞數(shù)據(jù)的長(zhǎng)度是2048個(gè)字節(jié)。對(duì)于post請(qǐng)求,雖然沒有最大長(zhǎng)度的限制,卻不能方便的使用window.opener與父頁面進(jìn)行通訊。

關(guān)于如何使用javascript自動(dòng)將一段get請(qǐng)求轉(zhuǎn)變成一個(gè)post請(qǐng)求,網(wǎng)上有很多的方法,其主要思想就是動(dòng)態(tài)構(gòu)造一個(gè)iframe,并將get請(qǐng)求中的url參數(shù)值賦給input控件,最后設(shè)置form的action地址并調(diào)用submit方法。

園子里有人已經(jīng)給出一個(gè)解決方法,http://www.cnblogs.com/ppchen/archive/2008/03/18/1109607.html
這里轉(zhuǎn)載如下:

 
 
 
  1. Code  
  2. var PostNewWin = function(url){  
  3. var urlurlArr = url.split("?");  
  4. var postUrl = urlArr[0];  
  5. var postData = urlArr[1];  
  6. var iframe = document.getElementById("postData_iframe");  
  7. if(!iframe){  
  8. iframe = document.createElement("iframe");  
  9. iframe.id = "postData_iframe";  
  10. iframe.scr= "about:blank";  
  11. iframe.frameborder = "0";  
  12. iframe.style.width = "0px";  
  13. iframe.style.height = "0px";  
  14.  
  15. var form = document.createElement("form");  
  16. form.id = "postData_form";  
  17. form.method = "post";  
  18. form.target = "_blank";  
  19.  
  20. document.body.appendChild(iframe);  
  21. iframe.contentWindow.document.write("" + form.outerHTML + "");  
  22. }  
  23. iframe.contentWindow.document.getElementById("postData_form").innerHTML = "/>";  
  24. iframe.contentWindow.document.getElementById("postData_form").action = postUrl;  
  25. iframe.contentWindow.document.getElementById("postData_form").submit();  
  26. }; 

例如原來有一個(gè)函數(shù),使用get請(qǐng)求打開新頁面

 
 
 
  1. function openNewWindow()  
  2. {  
  3. var url = http://www.website.com/page1.aspx?p1=v1&p2=v2;  
  4. var win =window.open(url);   

因?yàn)閡r的長(zhǎng)度問題,現(xiàn)在改為使用post方式提交,如下所示:

 
 
 
  1. function openNewWindow()  
  2. {  
  3. var url = http://www.website.com/page1.aspx?p1=v1&p2=v2;  
  4. //var win =window.open(url);   
  5. PostNewWin(url);  

這里有一個(gè)問題就是,使用這種方式后,就無法使用window.opener與父頁面進(jìn)行交互了,因?yàn)橥ㄟ^這個(gè)函數(shù),已經(jīng)將get請(qǐng)求變成一個(gè)post請(qǐng)求了。為了可以使用post的方式提較大數(shù)據(jù),同時(shí)也可以使用window.open(url)方式的window.opener與父頁面通訊,在這里做一點(diǎn)小的改版,首先使用window.open(url)時(shí)候,增加一個(gè)參數(shù),指定打開窗口的名稱,,如下所示:

 
 
 
  1. function openNewWindow()  
  2. {  
  3. var url = http://www.website.com/page1.aspx?p1=v1&p2=v2;  
  4. var winName  = "";  
  5. var win =window.open("about:blank",winName );   
  6. PostNewWin(url,winName);  
  7. }  
  8. 同時(shí)修改PostNewWin函數(shù),將這個(gè)新窗口的句柄傳遞給這個(gè)函數(shù),將post請(qǐng)求的target設(shè)置為這個(gè)參數(shù),如下所示:  
  9. var PostNewWin = function(url,winName){  
  10. .........  
  11. form.target = winName;   
  12. .......  
  13. }; 

這樣就可以同時(shí)使用post和get兩種方式的優(yōu)點(diǎn)了。


網(wǎng)站欄目:淺析get和post在HTTP編程中的使用方式
當(dāng)前地址:http://www.dlmjj.cn/article/dhgdeph.html