ajax主流瀏覽器的中文引數傳遞

2021-08-31 17:09:33 字數 1432 閱讀 3284

做web的童鞋經常遇到這樣的痛苦,前端傳遞給後台的中文引數是亂碼,導致無法正確查詢資料庫或做檔案處理。現在主流的瀏覽器主要是三種:ie,firefox,chrome。

我個人在web時,比較喜歡用chrome做測試展示,因為平時都常用chrome。我看過各大瀏覽器之間的比較,chrome的綜合實力是很給力的,google出品的瀏覽器果然很牛。firefox是比較常用的瀏覽器,懂計算機的都喜歡用firefox,因為firefox是比較早脫離ie核心,在效能上又比ie好,且又是開源的核心,所以一旦發布,就對ie瀏覽器的市場產生很大的衝擊,ie是仗著微軟的作業系統邦定,所以一直把持著瀏覽器的主要市場。

好了,說了很多廢話,進入正題把。ajax傳遞引數的方法有兩種,get和post。get的使用比較簡潔,傳遞引數可以直接把url中,類似於[url]search.php?name='wangjian'[/url],而xmlhttpresponse.send方法的引數為空,get方式的send一定為空,search.php中獲取get引數時只需

$name=$_get['name']
,search.php中就可以使用$name變數;而post方法無需把引數拼接在url中,而是使用send函式傳遞給後台,而url只需設定指定的後台處理php檔案,處理方式如下:

xmlhttp.setrequestheader三個語句時必須的,這是傳遞過長引數時,必須新增的語句。後台獲取引數的方法類似於get。兩者方法有一些不同,get使用簡單,執行效率塊,但不安全,因為引數都寫在url中,適合無需保密的一次性引數傳遞;post引數使用安全,傳遞引數大,適合安全可互動的長參傳遞。

ajax在中文引數時,會根據瀏覽器的不同,需做不同的處理,firefox和chrome在接受中文,需做編碼轉換處理

$file_name=iconv("utf-8","gb2312",$file_name);

ie則無需做這些處理,可以直接使用,所以在get或post這些引數後,需要判斷當前的瀏覽器是,並根據型別做不同的處理,判斷瀏覽器的方式有兩種,一是js把瀏覽器型別傳至後台,二是後台php自行判斷瀏覽器型別;js判斷是否為ie瀏覽器可以使用

if(document.all)

alert('ie');

else

alert('no ie');

php判斷瀏覽器可以使用

綜上所述,傳遞中文引數時,需要判斷瀏覽器型別,假設$type是否為ie的標識,$type=0,ie;else no ie。如此**如下:

if($type!=0)

好了,寫了這麼多,大家可以去試一下。

主流瀏覽器核心

1 trident 核心 windows trident核心的常見瀏覽器有 ie6 ie7 ie8 trident 4.0 ie9 trident 5.0 ie10 trident 6.0 世界之窗 360安全瀏覽器 傲遊 搜狗瀏覽器 2 gecko 跨平台 常見的gecko核心的瀏覽器 mozil...

主流瀏覽器相容HACK

propertyname value和單位 9 僅ie8識別 propertyname value 單位 selector ie7識別 propertyname value 單位 ie6識別 safari和 chrome 使用 media screen and webkit min device p...

各主流瀏覽器核心

1 ie瀏覽器核心 trident核心,也是俗稱的ie核心 2 chrome瀏覽器核心 統稱為chromium核心或chrome核心,以前是webkit核心,現在是blink核心 3 firefox瀏覽器核心 gecko核心,俗稱firefox核心 4 safari瀏覽器核心 webkit核心 5 ...