Heim >Backend-Entwicklung >PHP-Tutorial >Fineuploader löst das Problem des Cookie-Verlusts beim Hochladen von Dateien über Subdomains hinweg

Fineuploader löst das Problem des Cookie-Verlusts beim Hochladen von Dateien über Subdomains hinweg

巴扎黑
巴扎黑Original
2016-11-10 09:49:501806Durchsuche

Im aktuellen Projekt wird Fineuploader, eine reine HTML5-Upload-Komponente, verwendet. Während des Entwicklungsprozesses wird der Upload-Dienst separat unter einer bestimmten Subdomain platziert Der Benutzer wurde im Back-End-Code konfiguriert. Es wurde festgestellt, dass 302 immer auf die nicht angemeldete Seite umgeleitet wird. Bei der Untersuchung wurde festgestellt, dass die Ajax-XHR-Anfrage keine Cookies enthielt

Ich habe online gesucht und

geschrieben

Native Ajax-Anfragemethode:


var xhr = new XMLHttpRequest(); 
xhr.open("POST", "http://xxxx.com/demo/b/index.php", true); 
xhr.withCredentials = true; //支持跨域发送cookies
xhr.send();
jquerys Ajax-Post-Methodenanfrage:



$.ajax({
type: "POST",
url: "http://xxx.com/api/test",
dataType: 'jsonp',
xhrFields: {
withCredentials: true
},
crossDomain: true,
success:function(){
},
error:function(){
}
})
Serverseitige Einstellungen:

header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Origin: http://www .xxx.com");

Backend Entsprechende Anpassungen wurden vorgenommen. Da der Front-End-Teil Fineuploader beinhaltet, habe ich einfach im Code nach dem Schlüsselwort withCredentials gesucht und bin dann zum offiziellen Dokument gegangen, um es zu lesen. Es gibt eine CORS-Konfiguration http://docs.fineuploader.com/api/ options.html#cors

Fügen Sie die folgende Konfiguration in die Konfigurationszeile ein und es ist in Ordnung

Js-Code

cors: {  
                allowXdr: true,// 此参数目前不知道有啥用  
                expected: true,  
                sendCredentials: true  
            }
Nach der Änderung ist das Problem gelöst


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn