Home > 技術 > クロスドメイン用のHTTPレスポンスヘッダー - Perlスクリプト版

クロスドメイン用のHTTPレスポンスヘッダー - Perlスクリプト版

iPhoneのSafariとAndroidのブラウザ、PCのSafariとChromeでクロスドメインなAjaxを行う場合のレスポンスヘッダーで地味にハマったので、忘れないうちにメモしとく。

たいていの場合、.htaccessファイルに「Access-Control-Allow-Origin: *」を含めておけばいけまっせー!的な感じで書かれている場合が多いが、CGIとして書く場合にはもう1個だけ重要なものがあります。

それが、

Content-Length

!!

Content-Lengthが正しくないとAndroidのブラウザPCのChromeでAjax通信でレスポンスが返ってきてくれない。
まぁ、あんまりCGIとして書くケースはないのかもしれないのですが、.htaccessを使えないときには有効かもしれません。

Perlのコード

大体こんな感じでJSONを返すCGIを書いたときに、「Access-Control-Allow-Origin: *」と「Content-Length」 を正確に返す必要がある。
なので、以下コードでうまくいく。

Ajaxアクセス用のコード

こっちはこれだけ。
IEを考慮していないので、XDomainRequestは無視しています。


また、ちょっと古い記事ですが、クロスドメインなAjaxに対応したブラウザをご覧になりたい場合は、XMLHttpRequest level2に対応しているブラウザまとめをば。

初めてのPerl 第5版
初めてのPerl 第5版
posted with amazlet at 12.02.15
Randal L. Schwartz Tom Phoenix brian d foy
オライリージャパン
売り上げランキング: 30529

Trackback:0

TrackBack URL for this entry
http://hisasann.com/cgi-bin/mt/mt-tb.cgi/1283
Listed below are links to weblogs that reference
クロスドメイン用のHTTPレスポンスヘッダー - Perlスクリプト版 from HouseTect, JavaScriptな情報をあなたに

Home > 技術 > クロスドメイン用のHTTPレスポンスヘッダー - Perlスクリプト版

Tag cloud
月別アーカイブ
Powered by
Powered by
Movable Type Commercial 4.261

Page Top