1

В следующем вопросе используется Java, GWT, jQuery, App Engine (GAE).Google Cloud Storage. Прямая загрузка с помощью XMLHttpRequest вызывает «Access-Control-Allow-Origin» -error

Есть много вопросов относительно «Access-Control-Allow-Origin» -header, но ничто не похоже на то, что мне нужно.

Я пытаюсь загрузить файл в Google Cloud Storage с помощью POST Object. Это отлично работает, если я просто использую html-форму для фактической загрузки. Но как только я пытаюсь использовать XMLHttpRequest, чтобы сделать тот же самый запрос, я получаю сообщение об ошибке «Нет» Access-Control-Allow-Origin »на запрашиваемом ресурсе». Я следовал за setup CORS for a bucket -guide. Мой XML-файл CORS выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?> 
<CorsConfig> 
    <Cors> 
    <Origins> 
     <Origin>*</Origin> 
    </Origins> 
    <Methods> 
     <Method>GET</Method> 
     <Method>POST</Method> 
     <Method>HEAD</Method> 
     <Method>DELETE</Method> 
     <Method>OPTIONS</Method> 
    </Methods> 
    <ResponseHeaders> 
     <ResponseHeader>x-goog-meta-foo1</ResponseHeader> 
    </ResponseHeaders> 
    <MaxAgeSec>1800</MaxAgeSec> 
    </Cors> 
</CorsConfig> 

Так почему же я использую XMLHttpRequest? Это связано с тем, что я хочу иметь возможность загрузки контента в моих файлах в Google Cloud Storage (GCS). Я не уверен, что я где-то ошибаюсь, или если даже при загрузке в GCS возможно выполнение загрузки. Но, насколько я понимаю, на этом не должно быть никаких ограничений, так как процесс загрузки не основан на связи с GCS (другая скорость загрузки).

Я насильно очистил свой кеш, но это не помогло! :(

Любые предложения?

Спасибо!

ответ

5

Я действительно не хотел отвечать на мои собственные вопросы, потому что кажется, что я не достаточно исследований, прежде чем я спрашиваю. Но я действительно, Я попытался все, что мог в течение 1,5 дней, прежде чем я задал этот вопрос

проблема была одна строка в CORS XML-файл:.

<ResponseHeader>x-goog-meta-foo1</ResponseHeader> 

должны быть заменены:

<ResponseHeader>*</ResponseHeader> 

Я действительно не думаю, что это было бы никакой разницы, потому что считается, что «Access-Control-Allow-Origin'-заголовок будет отправлен по умолчанию, так вот почему я делаю эту установку и docs ничего не говорит об этом. Я действительно понял, что пример x-goog-meta-foo1, но не то, что он испортит настройки, если они используются (Google, пожалуйста, обновите документы).

+0

Ответ на ваши вопросы приемлемо .. до тех пор, пока вы сначала проводите исследование .., которое вы сделали .. :) Так что не беспокойтесь об этом .. – Lipis

+0

+1 - не проблема с ответом на ваш собственный вопрос, это может помочь другим в будущем – jterrace

+0

Это привело меня в сумасшествие почти на 2 дня. Ты спас свой день. Благодарю. – dhilipsiva

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

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