Запрос Ajax облачного хранилища Google не работает - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть 2 файла в облачном хранилище Google: a.wav и b.txt

Я хочу воспроизвести a.opus в своем браузере, который работает нормально.И я хочу прочитать b.txt

Google Docs , чтобы сказать, что если пользователь прошел проверку подлинности в браузере, он может загрузить объект из корзины.

<audio
    controls
    src="https://storage.cloud.google.com/bucketPath/a.wav" type="audio/ogg; codecs=opus">
        Your browser does not support the
        <code>audio</code> element.
</audio>

Это получает a.wav и играет это.Нет проблем.

Теперь, чтобы прочитать b.txt, я использую jquery ajax

$.ajax({
    url: "https://storage.cloud.google.com/bucketPath/b.txt",
    type: "GET",
    xhrFields: {
        withCredentials: true
    },
    crossDomain: true
}).done(function (data) {
    console.log( data );
}).fail(function( jqXHR, textStatus, errorThrown ) {
    alert( "Request failed: " + textStatus + " , " + errorThrown );
});

Но это дает мне ошибку, и в консоли выводится следующее:

Доступ к XMLHttpRequest по адресу 'https://storage.cloud.google.com/bucketPath/b.txt' от источника' url 'заблокирован политикой CORS: в запрошенном ресурсе отсутствует заголовок' Access-Control-Allow-Origin '.

Кроме того, на вкладке Сеть я вижу, что wav-файл получил ответ 206.

Но для txt-файла я получаю статус как (canceled)

ПочемуАудио элемент работает, но ajax не работает?

1 Ответ

0 голосов
/ 12 апреля 2019

В соответствии с сообщением об ошибке вам необходимо изменить конфигурацию CORS корзины, в которой хранятся файлы. Ему нужен заголовок Access-Control-Allow-Origin * , потому что политика того же источника применяется, когда вы делаете запрос с использованием jQuery. Вы можете найти больше информации о том, как CORS работает с облачным хранилищем здесь .

Выполните эти шаги , чтобы убедиться, что запросы CORS к вашему ведру не отклоняются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...