2012-04-27 48 views
1

Ajax發送請求與編碼gzip(iis7)不起作用下面是發送請求的代碼 有人可以幫我在我的代碼中有什麼問題。ajax發送請求與編碼gzip不起作用

在此先感謝

function sendRequest(url, callback, postData) 
{ 
    var req = createXMLHTTPObject(); 
    if (!req) { 
     return; 
    } 

    var method = (postData) ? "POST" : "GET"; 
    req.open(method, "xml/" + url, true); 
    req.setRequestHeader('User-Agent', 'XMLHTTP/1.0'); 

    if (postData) { 
     req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); 
     req.setRequestHeader("Content-Encoding", "gzip"); 

    } 

    req.onreadystatechange = function() { 

    } 

    req.send(postData); 
} 
+1

你是什麼意思不工作?服務器是否沒有響應,因爲它應該?你有錯誤嗎? – Nadh 2012-04-27 06:48:40

+1

你真的在壓縮內容還是僅僅通過更改標題來假裝壓縮內容? postData gzipped? – 2012-04-27 07:04:46

+0

@dystroy是的,它的壓縮問題下載xml文件與大小很大 – 2012-04-27 07:18:21

回答

1

這個問題似乎並沒有與標題相關,而是與壓縮有關。

你好像不會壓縮你的postData。

如果postData已被壓縮,則不需要嘗試手動設置內容編碼。

如果不是,讓瀏覽器與服務器協商傳輸編碼(這是協議的一部分,並自動完成,服務器說它是否接受它,但我認爲這種情況很少)或(if你真的需要)自己編碼。這SO問題表明一個庫來壓縮browserside:JavaScript implementation of Gzip

+1

爲什麼程序員需要實現gzip進行數據傳輸?瀏覽器必須有一種方式可以自動壓縮。我不希望我的客戶端上傳10MB未壓縮的json有效負載,這是常識。 – Phil 2017-01-27 14:03:28

3

考慮到安全,瀏覽器不允許你要忽略一些標題,包括「內容編碼」。