2014-06-14 21 views
6

Pebble JS Framework adresindeki XMLHttpRequest numaralı doğru kimlik bilgilerinin neden doğru olması, Android'de temel kimlik doğrulaması başarısız olur, ancak iOS'ta çalışır? çizgisinde tam aynı kodXMLHttpRequest temel kimlik doğrulamasında başarısız oluyor

:

var req = new XMLHttpRequest(); 
req.open(method, url, true, user, pass); 
req.send(data); 
req.onreadystatechange = function() { ... } 

Android Çakıl uygulamasından 401 yılında İade fakat iOS doğru doğrular.

+0

Buna baktınız mı? http://stackoverflow.com/questions/11025213/ios-authentication-using-xmlhttprequest-handling-401-reponse – JakeGould

+1

Downvoters birleştirir :) veya en azından 'kendinizle konuşun. "Ne denedin?" Veya "çabanızı/kodunuzu gösterin"? Memnuniyetle dinlerim. –

+0

@JakeGould, maalesef benim için geçerli değil. Pebble uygulamasının JS bölümü zaten iOS'ta doğru şekilde çalışıyor. Ve Android Pebble JS çerçevesinde her zaman başarısız olur - doğru kimlik bilgileriyle bile –

cevap

17

Android'de benim için çalışan bir geçici çözüm buldum.

neden ama doğrudan doğrulanmış isteği Bilmiyor:

req.open(method, fullurl, true, user, pass); 
    req.send(data); 

benim için işe yaramadı - her zaman ben başlığı üzerinden temel kimlik doğrulaması ayarlamak çalıştı Yani Yerine 401. döndürdü:

req.open(method, fullurl, true); 
    req.setRequestHeader("Authorization", "Basic " + Base64.encode(user + ":" + pass)); 
    req.send(data); 

(burada Base64 buradan alınır: https://stackoverflow.com/a/246813/961695) - ve işe yaradı! Belki de android üzerinde XmlHttpRequest uygulamasında bir hata var.

+1

Google Sorun: https://code.google.com/p/chromium/issues/detail?id=128323 – StarQuake

+4

Neden btoa'yı denemiyorsunuz? javascript saftır .. ¬.¬ bir deneyin 'req.setRequestHeader (" Yetkilendirme "," Temel "+ btoa (kullanıcı +": "+ pass));' – KingRider

+0

btoa sadece ASCII'dir – diachedelic

İlgili konular