Там какой-либо путь состоит в том, чтобы загрузить json из субдомена?

Я хотел бы спрятать некоторые .json файлы на CDN а-ля static.mydomain.com. Истина быть сказанным, static.mydomain.com является CNAME перед блоком Amazon S3.

Я понимаю, что это нарушает модель обеспечения безопасности JavaScript. Существует ли рекомендуемое обходное решение или дизайн? Я видел материал серверной стороны, предложенный как Сценарий PHP высосать вниз данные через ЗАВИХРЕНИЕ или file_gets_contents (), но это - довольно хромой подход. Там какой-либо путь состоит в том, чтобы загрузить JSON из внешнего сервера, не добираясь также hacky?

===

ОБНОВЛЕНИЕ: вот ход мыслей, который привел меня полагать, что это - междоменная проблема для субдоменов.

Когда я посещаю страницу (например, static.mydomain.com/json/file.json) в Chrome, это отображается, поскольку это было бы простой текст. Когда я посещаю страницу в Firefox, она пытается заставить меня сохранять .json как загрузку.

Я вижу специфический результат в Firebug: 200 ответов без органа по ответу. alt text

Я не могу зарегистрировать прямые заголовки через браузер; мой плагин HTTP-заголовка Firefox ничего не регистрирует, прежде чем загрузка будет вызвана. Однако вот заголовки при загрузке через этот отрывок jQuery (стоящий замечания, предупреждение ниже не стреляет):

jQuery.get("https://static.mydomain.com/json/file.json",
   function(data){
     alert("Data: " + data);
   }
);

Заголовки ответа

x-amz-id-2 wSVtjlvFj5ffOtg7ZbKqKw8PexqlzJic7+PxSk975/FcDUnshSV2CiUP2oPWR8yK
x-amz-request-id 8AD81565A783988D
Date Tue, 19 Oct 2010 00:07:22 GMT
Expires Sat, 17 Oct 2015 22:25:37 GMT
Last-Modified Mon, 18 Oct 2010 01:08:13 GMT
Etag "2f1c7adcc1a7b0fd8fc8ce1478e0bf81"
Content-Type application/json
Content-Length 85966
Server AmazonS3

Заголовки запроса

Host static.mydomain.com
User-Agent Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8
Accept application/json, text/javascript, */*; q=0.01
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Referer http://mydomain.com/directory/referrer.html
Origin http://mydomain.com

Хотя заголовки, кажется, мне прекрасны, нет никакого органа по ответу или к получению, сообщению или к чему-либо еще, что я могу бросить в это с помощью jQuery. Я вижу тот же результат при установке типа контента на application/json, текст/JavaScript и текст/плоскость.

Кто-либо может объяснить это поведение? Я полагаю, что должен делать что-то не так на стороне S3, но это могли быть междоменные проблемы в JavaScript, или я могу исключить проблемы перекрестного субдомена?

7
задан buley 19 October 2010 в 02:07
поделиться