Chciałbym przechować niektóre pliki .json na CDN a la static.mydomain.com. Prawda jest taka, static.mydomain.com jest rekordem CNAME znajdującym się przed wiadrem Amazon S3.Czy istnieje sposób na załadowanie json z subdomeny?
Rozumiem, że narusza to model zabezpieczeń JavaScript. Czy istnieje zalecane rozwiązanie lub projekt? Widziałem rzeczy po stronie serwera sugerowane jak skrypt PHP do pobierania danych przez cURL lub file_gets_contents(), ale to dość kiepskie podejście. Czy istnieje sposób, aby załadować JSON z obcego serwera bez zbytniej zemsty?
===
UPDATE: Oto sposób myślenia, który doprowadził mnie do przypuszczenia, że jest to problem dla crossdomain subdomen.
Gdy odwiedzam stronę (np. Static.mydomain.com/json/file.json) w przeglądarce Chrome, wyświetla się ona w postaci tekstu jawnego. Kiedy odwiedzam stronę w Firefoksie, próbuje mnie zmusić do zapisania pliku .json do pobrania.
Widzę dziwny wynik w Firebug: A 200 odpowiedź bez treści odpowiedzi.
Nie mogę rejestrować bezpośrednich nagłówków przez przeglądarkę; moja wtyczka nagłówka HTTP Firefoksa nie rejestruje niczego, zanim nie zostanie wymuszona. Jednak tutaj są nagłówki gdy ładowane za pomocą tego jQuery snippit (warto zauważyć, alert poniżej nie ogień):
jQuery.get("https://static.mydomain.com/json/file.json",
function(data){
alert("Data: " + data);
}
);
nagłówki odpowiedzi
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
Żądanie Główki
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
Choć nagłówki wydają mi się w porządku, nie ma ciała odpowiedzi ani na get, post, ani na cokolwiek innego, co mogę wyrzucić w tym przez jQuery. Widzę ten sam wynik przy ustawianiu typu zawartości na application/json, text/javascript i text/plain.
Czy ktoś może wyjaśnić to zachowanie? Sądzę, że muszę zrobić coś złego na stronie S3, ale czy może to być problem z wieloma domenami w JavaScript lub czy mogę wykluczyć problemy z poddomią?
Co domenie robi to aplikacja podawane? –
Zawsze uważałem, że poddomeny były w porządku. Jedyne, co naprawdę ma znaczenie, to whatever.com. Czy próbowałeś tego? – Gregg
Najlepiej byłoby, gdyby był on obsługiwany przez witrynę www.mydomain.com lub mydomain.com, a także byłby w stanie pobrać statyczne dane .json ze static.mydomain.com. – buley