Czy https://www.googleapis.com/upload/drive/v2/files naprawdę obsługuje CORS?

Aktualizacja: To jest błąd w GoogleDrive, CORS nie jest włączony do przesyłania URI. @Nivco wskazał mi pracę z biblioteką klientów Google, która używa iframe i proxy (nie CORS). Umieszczam (testowany) kod roboczy na dole wraz ze szczegółowym wyjaśnieniem. Zobacz przykład poniżej.

Wstawianie pliku na Dysk Google za pomocą interfejsu API iAutoryzacja Dysku Google za pomocą JavaScript powiedzmy, że punkty końcowe przesyłania obsługują CORS, ale nie byłem w stanie ich użyć. Mogę uzyskać autoryzację i wstawić pusty plik, używającPliki: wstaw, ale nie mogę przesłać do niego treści - podczas używania otrzymuję błąd 405 (niedozwolona metoda)https://www.googleapis.com/upload/drive/v2/files kiedy używam jednej z dwóch technik podanych w przykładzie w artykule o przepełnieniu stosu plików.

Czy to możliwe, że CORS pracował dla v1 i nie został włączony dla v2?

EDYCJA: Nawiasem mówiąc, błąd 405 występuje na żądanie OPCJE, które tworzy chrom.

EDIT: Oto kod z jednej z moich prób:

Zanim przedstawię kod, chcę podkreślić, że mogę uwierzytelniać i wyświetlać pliki. Po prostu nie mogę przesłać danych do pliku.

var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart');
xhr.setRequestHeader('Authorization', 'Bearer ' + params.access_token);
xhr.setRequestHeader("Content-Type",  'multipart/related; boundary="END_OF_PART"');
xhr.onreadystatechange = function(data) {
  if (xhr.readyState == DONE) {
    document.getElementById("files").innerHTML = "Uploaded file: " + xhr.responseText;
    };
  }
xhr.send([
  mimePart("END_OF_PART", "application/json", json),
  mimePart("END_OF_PART", "text/plain", "a\nb\n"),
  "\r\n--END_OF_PART--\r\n",
].join(''));
function mimePart(boundary, mimeType, content) {
  return [
    "\r\n--", boundary, "\r\n",
    "Content-Type: ", mimeType, "\r\n",
    "Content-Length: ", content.length, "\r\n",
    "\r\n",
    content,
  ].join('');
}

Oto prośba:

Request URL:https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart
Request Method:OPTIONS

Oto odpowiedź:

Status Code:405 Method Not Allowed
cache-control:no-cache, no-store, must-revalidate
content-length:0
content-type:text/html; charset=UTF-8
date:Mon, 23 Jul 2012 22:41:29 GMT
expires:Fri, 01 Jan 1990 00:00:00 GMT
pragma:no-cache
server:HTTP Upload Server Built on Jul 17 2012 16:15:04 (1342566904)
status:405 Method Not Allowed
version:HTTP/1.1

Brak odpowiedzi, ponieważ Chrome otrzymuje błąd 405 dla tego żądania OPCJI. Nie ma testu POST, ponieważ Chrome nie może kontynuować, ponieważ jego żądanie OPCJE nie powiodło się z 405, więc drukuje ten błąd w konsoli:

XMLHttpRequest cannot load https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart. Origin https://leisurestorage.appspot.com is not allowed by Access-Control-Allow-Origin.

questionAnswers(3)

yourAnswerToTheQuestion