2014-01-26 3 views
0

Я пытаюсь использовать jQuery для захвата файла с amazonS3, но я столкнулся с проблемами политики доступа к междоменному доступу. Текущее решение состоит в том, чтобы в принципе иметь интерфейс passthru, который читает файл с использованием метода readfile php. Мне это не нравится лично, потому что он использует данные сайтов (если он ограничен или оплачивается), и я думаю, что было бы лучше получить его непосредственно из ссылки Amazon S3.Использование jQuery для получения объекта non-json от amazon s3

Я искал возможные решения, и все они сказали, что используют JSONP или CORS. Я не хочу использовать CORS, потому что несколько человек используют установку сервера, и я не хочу, чтобы там было еще больше, что они должны были настроить.

Я пробовал JSONP (код ниже), но я получаю синтаксическую ошибку, потому что я не читаю данные json. Я читаю текст/plain или application/octet-stream.

Вот код, который я JSON пытался с: (Надеюсь, это правильно отформатированный)

$.ajax({ 
    url: '<non-json file url goes here>', 
    dataType: 'jsonp', 
    jsonp: true, 
    jsonpCallback: 'content' 
}).done(function (data) { 
    if (data.enabled === true) { 
     alert("done"); 
    } 
}); 

Есть ли способ, кроме CORS и текущий способ делать то, что я хочу сделать?

EDIT 1/26/2014: Серьезно, пожалуйста, прекратите предлагать CORS. Я знаю, что могу использовать CORS, я спрашиваю, есть ли что-то, кроме CORS. Спасибо.

ответ

0

Почему вы не можете использовать CORS, все, что вам нужно сделать, это получить еще один заголовок в ответе на вашу страницу, который вы должны будете делать на странице за страницей, правильно?

Вот некоторые предложенные способы в зависимости от того, что сервер языка вы используете:

http://enable-cors.org/server.html

+0

Потому что тогда, кто установит программу на своем сервере, используя собственный хранилище данных S3, придется настроить CORS вручную, что я не хочу, чтобы они делали. – jnesselr

0

Если я не смотрю на этот сценарий неправильно, «они» (люди, установка/погонный кода) дон «нужно иметь конфигурацию CORS на своем сервере -« вы », на ведро, к которому обращаются.

http://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html

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

Помогло ли это?

+0

Я понимаю это, но они используют свои собственные данные и ведра S3. Это не просто одно ведро, которое я создал, они создают свои собственные ведра S3 для своего конкретного случая. В настоящее время это означает, что они все равно должны настроить s3, но я не хочу, чтобы они также настраивали CORS. – jnesselr

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