2013-08-27 9 views
6

Używam programu FineUploader 3.7 w projekcie przesyłania między domenami. Wszystko jest w porządku, dopóki nie przeniesię kodu na serwer DEV klienta, który ma proste uwierzytelnianie. Czy istnieje sposób osadzenia informacji uwierzytelniających w formularzu, gdy żądanie wstępne jest wysyłane na serwer?FineUploader - dodaj uwierzytelnianie w nagłówku

Próbowałem wstawić podstawowe uwierzytelnianie w nagłówkach, ale nie działa. Proszę zapoznać się z poniższym kodzie:

$.ajaxSetup({ 
    headers: { 
     'Authorization': "Basic YZVjaGFmbWluOkNieWxjBTY3" 
    }, 
    beforeSend: function (jqXHR, settings) { 
     jqXHR.setRequestHeader('Authorization', 'Basic YZVjaGFmbWluOkNieWxjBTY3'); 
    } 
}); 

A nawet więcej, próbowałem ustawić nagłówek niestandardowy i nie szczęścia:

var manualuploader = new qq.FineUploader({ 
    customHeaders: { 
    'Authorization': 'Basic YXVjaGFkbWluOkNieWxjZTY3' 
    },.... 

Odpowiedz

9

opcję customHeaders nie jest poprawnie zdefiniowany. customHeaders jest własnością opcji request, zgodnie z opisem w request option documentation.

Kod integracja dzieła Uploader powinien wyglądać tak zamiast:

var manualuploader = new qq.FineUploader({ 
    request: { 
     endpoint: "path/to/your/server", 
     customHeaders: { 
      "Authorization": "Basic YXVjaGFkbWluOkNieWxjZTY3" 
     } 
    } 
}); 

Ponadto, należy pamiętać, że jQuery ajaxSetup nie ma wpływu na rozmowy ajax/XHR Znakomita przesyłającego. Program Fine Uploader w ogóle nie korzysta z jQuery. Opcjonalna wtyczka jQuery oferowana przez program Fine Uploader po prostu opakowuje natywną bibliotekę javascript, aby umożliwić jej łatwe użycie jako wtyczki jQuery poprzez obsługę składni wspólnej związanej z wtyczkami jQuery i jQuery.

Pamiętaj też, że te nagłówki nie będą przekazywane wraz z żądaniem przesyłania w IE9 i starszym, ponieważ IE9 i starsze nie obsługują przesyłania przez ajax/xhr. W tych przeglądarkach przesyłany jest formularz kierowany na element iframe. W przypadku przesyłania formularza nie ma możliwości powiązania niestandardowych nagłówków z żądaniem.

+0

Witaj, Ray, dziękuję za opinię, ale nadal nie działa. Ponieważ podczas przesyłania pliku są dwa żądania. Pierwsze żądanie typu "preflight" nie powiodło się z błędem 401 autoryzacji. Sprawdziłem nagłówek w Fiddler, nie ma w nim nagłówka Authorization. Czy tęskniłem za czymś innym? – Peng

+0

Inspekcja wstępna nie będzie zawierać żadnych niestandardowych nagłówków. Program Fine Uploader nie ma nad tym kontroli, tak właśnie działa CORS. Jeśli preflight jest poprawnie obsługiwany przez serwer, oryginalne żądanie zostanie wysłane przez przeglądarkę z nagłówkiem Authorization. Serwer powinien zostać skonfigurowany w taki sposób, aby poprawnie odpowiadał na żądania preflightów (OPCJE), jeśli pracujesz w środowisku z krzyżowym początkiem. –

+0

Bardzo dziękuję Ray. Przepraszam za odpowiedź opóźnienia .... Jeszcze jeden problem dotyczący tej prośby OPTIONS o preflight, nasz klient powiedział, że metoda http "OPCJE" jest zabroniona na ich serwerze. Proszą nas o usunięcie tej prośby "OPCJE". Jednak zgodnie z Twoim ostatnim komentarzem, "OPCJE" nie mogą zostać usunięte w naszej sytuacji CROS. Czy mam rację? – Peng

Powiązane problemy