2010-03-17 12 views
13

HTTP belirli başlıklarını kaldırmak için nasıl?bu bir http mesajı göndermeden önce, javascript/XmlHttpRequest kullanarak bazı özel http başlıklarını kaldırmak mümkün mü JavaScript

Ben tescilli bir tarayıcı kullanıyorum, bu nedenle browser özgü çözüm kullanarak bunu yapmak için hiçbir yolu yoktur.

Örneğin, daha önce mesaj

POST /social/rpc?oauth_version=1.0& ... HTTP/1.1 

Accept: text/html, image/png, image/*, */* 
Accept-Language: ko 
Authorization: Basic Og== 
Host: test.myhost.com 

Selamlar

cevap

14

Tarayıcınızın desteklediği varsayılarak XmlHttpRequest nesnesinin setRequestHeader yöntemini kullanabilirsiniz. Bu, W3C spec'un bir parçasıdır. It is also implemented by IE. Ben jquery-dosyasını yüklemeyi kullanın ve imbiğin benim için null veya '' değil işlerin ayarlı, options yönteminde kaldırmak

var req = new XMLHttpRequest(); 
req.setRequestHeader("Authorization", ""); 
+0

Sadece bu artık gerekli benim için olduğunu şimdi anlamaya. Sorunlara neden olduğunu düşündüm ama değil. Yine de teşekkürler. – Andres

+10

Spesifikasyonlara göre, bu asla başlıkları kaldırmamalıdır. Sadece değerleri ekler. Yani null veya "" geçseniz bile orijinal değeri değiştirmez. – Marco

+0

Aslında yaptı. – madhairsilence

4

yapmış asla göndermek başlığını 'Yetki' kaldırmak istiyorum, ama teoride deneyebilirsiniz:

xhr.setRequestHeader('Authorization', null); 

Bazı uygulamalarda belirtilmemiş bir removeRequestHeader() işlevi de var, bunu da denemek isteyebilirsiniz.

3

, ben kullanın:

req.setRequestHeader("Authorization");

Bana uyar .

+0

'setRequestHeader' kullanımı' Authorization' başlığını sizin için nasıl kaldırır? Anlamadım. zaten req nedir? – vsync

+0

@vsync the XMLHttpRequest (xhr) – Fancyoung

0

Adem'in cevabı benim için çalışmadı. Ancak, şu yaptı:

xhr.setRequestHeader('Authorization', ' '); 

bildirimini, ikinci parametre yerine boş alan boşluk içeren bir dizedir. Tamamen başlığı kaldırabilir, ancak bazı durumlarda yeterli olabilir boş bir dize, bunu ayarlar etmez.

İlgili konular