BLOGTIMES
2012/07/08

Origin null is not allowed by Access-Control-Allow-Origin. というエラーが出るときは

  javascript  chrome  janetter 
このエントリーをはてなブックマークに追加

先ほど書いたプラグインは、設定をハードコーディングしてしまっていたので、何が何でも柔軟性に問題あるだろということで、あるウェブサーバにファイルを置いて ( http://example.jp/hoge.txt ) 、それを XMLHttpRequest を使って読み込むようにしてみました。

var httpObj = $.get("http://example.jp/hoge.txt", function(){ highlight = httpObj.responseText.split("\n"); });

コード的にはこんな感じです。こうすれば PC が複数あっても設定をいちいち同期させる必要がないので楽ちんと思ったのもつかの間、XMLHttpRequest cannot load http://example.jp/hoge.txt. Origin null is not allowed by Access-Control-Allow-Origin.というエラーが出て動きません。Janetter の心臓部は Chromium なので Chrome と同じ問題*1が発生しているようでした。回避方法としては、ウェブサーバ側のレスポンスのヘッダに Access-Control-Allow-Origin: * が入っていればいいみたいだったので、.htaccess に下記の設定を挿入することで無事通信ができるようになりました。

.htaccess

<FilesMatch "^hoge\.txt$"> Header set Access-Control-Allow-Origin "*" </FilesMatch>

トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/5072
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン