2012-03-22 2 views
0

w3.org CORS specification явно указано, что учетные данные должны быть опущены, делая preflighed запрос с CORS:Почему Chrome отправляет учетные данные пользователя с запросом на предварительный набор CORS?

Исключить учетные данные пользователя.

Почему Google Chrome пренебрегает этим?

Посмотрите на следующий код.

var url = 'http://example.net/resources/test.php'; 
var xhr = new XMLHttpRequest(); 
xhr.open('PUT', url, true); 
xhr.onreadystatechange = handler; 
xhr.withCredentials = true; 
xhr.send(); 

Вот заголовки запроса из приведенного выше сценария.

OPTIONS /resources/test.php HTTP/1.1 
Host: example.net 
Connection: keep-alive 
Access-Control-Request-Method: PUT 
Origin: http://elsewhere.example.net 
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/17.0.963.79 Chrome/17.0.963.79 Safari/535.11 
Access-Control-Request-Headers: Origin 
Accept: */* 
Referer: http://elsewhere.example.net/cors-example.html 
Accept-Encoding: gzip,deflate,sdch 
Accept-Language: nl-NL,nl;q=0.8,en-US;q=0.6,en;q=0.4 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 
Cookie: somecookies=here 

Как вы можете видеть, куки (учетные данные пользователя) являются посланные вперед, несмотря на спецификации CORS. Есть ли причина этого?

ответ

1

Звучит как ошибка. Вы можете отправить отчет об ошибке в Google: new.crbug.com

+1

Спасибо. Я написал здесь отчет об ошибке: http://code.google.com/p/chromium/issues/detail?id=121904 – Honoki

0

Да, есть причина. Вы специально сказали XHR, что она должна включать в себя учетные данные, установив свойство:

xhr.withCredentials = true; 

Удалить эту линию и Chrome должен сделать запрос без печенья.

+0

Nevermind, похоже на ошибку Chrome. –

 Смежные вопросы

  • Нет связанных вопросов^_^