2013-05-22 27 views
10

Bazı verileri almak için etki alanları arası ajax isteği yapıyorum. REST hizmeti Basic authentication (IIS üzerinden ayarlanır) var.Çapraz etki alanı ajax isteği temel kimlik doğrulaması

$.ajax({ 
      type: "GET", 
      xhrFields: { 
       withCredentials: true 
      }, 
      dataType: "jsonp", 
      contentType: "application/javascript", 
      data: myData, 
      async: false, 
      crossDomain: true, 
      url: "http://xx.xx.xx.xx/MyService/MyService.svc/GetData", 
      success: function (jsonData) { 
       console.log(jsonData); 
      }, 
      error: function (request, textStatus, errorThrown) { 
       console.log(request.responseText); 
       console.log(textStatus); 
       console.log(errorThrown); 
      } 
     }); 

bu talebi yaptığınızda, kimlik bilgilerini el ile yanıt almak için kimlik bilgilerini girmek zorunda & girmemi ister. Bu kimlik bilgilerini isteğin kendisine gönderebilir miyiz? gereksiz olduğunu (soru yarım yıl önce hakkında cevap verilmiştir) ve gereksiz olduğunu: neden

cevap

5

Geçiş kullanıcı adı ve aşağıdaki kodu gibi şifre,

$.ajax({ 
    type: "GET", 
    xhrFields: { 
     withCredentials: true 
    }, 
    dataType: "jsonp", 
    contentType: "application/javascript", 
    data: myData, 
    async: false, 
    crossDomain: true, 
    url: "http://xx.xx.xx.xx/MyService/MyService.svc/GetData", 
    success: function (jsonData) { 
     console.log(jsonData); 
    }, 
    error: function (request, textStatus, errorThrown) { 
     console.log(request.responseText); 
     console.log(textStatus); 
     console.log(errorThrown); 
    } 
    username: username, 
    password: password, 
}); 
4
$.ajax({ 
    url: 'yoururl', 
    username : username, 
    password :password, 
    type: 'POST', 
    contentType: 'application/x-www-form-urlencoded', 
    dataType: "text", 
    xhrFields: 
    { 
     withCredentials: true 
    }, 
    beforeSend: function (xhr) { 
     xhr.setRequestHeader('Authorization', 'Basic ' + btoa(username + ":" + password));    
    } 
}); 
+2

burada bu cevap heyecan değilim ve var (jQuery, sizin için AFAICT öğelerini işliyor). Eğer ikincisi hakkında yanlışsam, cevabı düzenleyin ve bu yorumu sildim. –

+0

BeforeSend özelliğini kullanmak benim için çalıştı, çünkü bir nedenle kullanıcı adı ve parola Yetkilendirme başlığını eklemiyordu. Sadece durumunda kimse yardımcı olur. – rodrigobartels

İlgili konular