2013-04-23 20 views
6

Apache preemtive temel kimlik doğrulaması altında çalışan bazı RESTful hizmetlerine ulaşmaya çalışıyorum. Jquery Ajax kullanıyorum ve 'Authentication' başlığıyla kullanıcı ve şifreyi gönderiyorum. Ancak, isteğim her çalıştığında boş bir hata veriyor. Yanlışjquery ajax ve preemptive temel auth

$.ajax({ 
     cache:false, 
     url: urladdress, 
     type:'GET', 
     async:false, 
     headers: { "cache-control": "no-cache" }, 
     dataType: "html", //or xml or json 
     contentType: "html", 
     beforeSend : function(req) 
     { 
      req.setRequestHeader('Authorization', "Basic " + base64string); //user:password); 
     }, 
     success: function(data){ 
     successcallback(data); 
     }, 
     error: function(xhRequest, ErrorText, thrownError){ 
      alert("ERROR: "+ JSON.stringify(xhRequest)); 
     }, 
     complete: function(result){ 
     ... 
     } 
}); 

yapıyorum: Burada

tam $ .ajax çağrıdır? Burada görmezden geldiğim bir şey var mı? Teşekkürler.

+0

Güncelleştirme: \t $ ajax parametrelerini değiştirdim. Şimdi kimlik bilgilerimi kullanıcı adı ve parola: argümanlarıyla geçiriyorum. Hata diyor: "Sınırlı URI'ye erişim reddedildi" Çapraz etki alanı sorunu gibi görünüyor, değil mi? –

+0

"Sınırlı URI'ye erişim reddedildi" seçeneğini alırsanız, bu bir etki alanı sorunudur. Bu –

+0

için JSONP kullanmanız gerekir Ne yazık ki, hizmetleri aramak için bir PHP proxy kullanacağım düşünüyorum. Basit JavaScript ile geçmek için herhangi bir yolu yok gibi görünüyor. –

cevap

1

Çözüm sunucu tarafındaysa, etki alanı çalışmalarına yanıt olarak bazı özel başlıklar eklemeniz gerekir.

Access-Control-Allow-Origin: yourApiDomain

Access-Control-Allow-Yöntemleri: Deney cevaben aşağıdaki başlıkları göndermek *

  • durumda özel başlıklarını kullanmanın:

    Access-Control-Açığa-Başlıkları: X-My-Özel-Üstbilgi, X-Başka-Özel-Üstbilgi

    Access-Control-Allow-Başlıkları: X-My-Özel-Üstbilgi, X-Başka-Custo m-Başlık

  • HTTP Çerezler ve HTTP Authentication bilgilerini kullanarak durumunda:

    Access-Control-Allow-Kimlik: Daha fazla bilgi almak için

gerçek MDN about CORS belgeleri okuyun: