February 13,2009

當 jQuery().ajax() 遇到 ASP

利用 jqGrid 新增中文欄位資料時,到伺服器端時,就變成亂碼了。
FireBug 大神幫忙,發現 request header content-type 的編碼是 utf-8,查過jqGrid的 source code,裡面也只是調用 jQuery 的 ajax 函數而已。
照理來說,應該可以用 $.ajaxSetup() 來修正,但試了好一陣子,發現沒辦法,即使我在 contentType 裡指定了 charset=big5,最後送出時,仍然會是 utf-8...

好吧,山不轉路轉,再拜請Google大神,發現有人利用 escape() 解,也就是先用 javascript escape() 編碼,server 端再解碼,這樣就解了。
大致的代碼是這樣:
//
$("#jqGrid2").jqGrid( 
  // ... 略 ...
).navGrid( "#pager2", {
  // ... 略 ...
  add:true,
  addfunc: function() {
    $("#jqGrid2").editGridRow( "new", {
      url: "server.asp",
      beforeSubmit: function( postdata, o ) {
        var s = postdata[ "your_field_name" ];
        var ret=[true, "", ""];
        postdata[ "your_field_name" ] = escape( s );
        return ret;
      }
    } );
    return false;
  }
} );


Posted by elleryq at 樂多Roodo! │02:20 │回應(1)引用(0)資訊相關Idea與筆記
樂多分類:網路/3C 共同主題:jQuery 工具:編輯本文
標籤:JavaScript,asp,jquery
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/8295421
回應文章

版主您好

我們是WEnews(http://wenews.cc)全民新聞網站的編採小組,
您所經營的部落格非常好,內容相當適合刊載於WEnews,
若經NOWnews(今日新聞)採用,就有機會得到稿費、獎金與紅利等好康。
目前我們正在舉辦新加坡特派記者的徵選,免費提供機票與住宿補助。
http://www.nownews.com.tw/events/20090121_wenews_event/

歡迎您的參加,進一步認識WEnews
http://wenews.nownews.com/q_and_a.htm

WEnews 編採小組敬上
Posted by WENEWS at February 13,2009 15:33