Я пытаюсь выполнить запрос POST с HttpRequest (dart: html), чтобы вызвать службу отдыха, обеспеченную базовой аутентификацией.DART HttpRequest не предоставляет заголовок авторизации для запроса CORS OPTIONS
HttpRequest request = new HttpRequest(); // create a new XHR
var url = "http://localhost:8082/xyz";
request.open("POST", url, async: false); // POST the data to the server
String username = "foo";
String password = "bar";
final auth = CryptoUtils.bytesToBase64(UTF8.encode("$username:$password"));
request.setRequestHeader('authorization',"Basic $auth");
request.setRequestHeader('content-type',"application/json");
request.setRequestHeader("accept", "application/json");
String jsonData = '{"language":"dart"}'; // etc...
request.send(jsonData); //exception 401 Unauthorized
Перед выполнением POST называют Парам.вызов выполняются (выдаются дротик: HTML) без заголовка авторизации. Это приводит к 401 Несанкционированному ответу.
заголовок запроса:
Accept: */*
Accept-Encoding: GZIP, выкачать, SDCH
Accept-Language: ан-США, ан; д = 0,8
Подтверждение-запрос-заголовок: авторизация, тип контента, принимаю
Метод-контроль-запрос-метод: POST
Cache-Control: макс возраста = 0
соединения: Keep-Alive
хоста: LOCALHOST: 8082
Происхождение: http://localhost:63342
Referer: http://localhost:63342/dart_client/test/all_test.html
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537,36 (KHTML, как Gecko) Chrome/38.0.2125.0 (Dart) Safari/537,36réponse Заголовок:
Content-Length: 0
Дата : пн, 2 февраля 2015 23:33:58 GMT
Сервер: Jetty (9.2.7.v20150116)
WWW-Authenticate: Основная область = "xyzrealm"
Есть ли способ предоставить заголовок авторизации для вызова OPTIONS?
Любые предложения были бы замечательными. Thanks
Спасибо! Вы были правы, запрос OPTIONS сделан браузером. Чтобы включить запрос предварительной проверки, мне нужно создать новый SecurityHandler для Jetty Server. В качестве примера см. [Link] (https://code.launchpad.net/~nwilliams/akiban-server/cors-preflight-no-auth/+merge/161690) –