どらちゃんのポッケ

R・統計・技術メモなど勉強ログ置き場

JSONを試す環境

背景

Backbone.jsをお勉強するために、JSON返すサーバが欲しいなとおもって、簡単に構築する方法を私が知っているやり方でまとめた

Chromeの設定変更(とりあえず動かすために)

  • CrossDomain環境だとXMLHttpRequestが制限されるので、制限の解除
    • サーバ側でヘッダにつけろと言う話もあるが、まずは動かしたいので、Chrome側を変える
  • ちなみに、エラーはこんな感じ

    • 同じホストでもポートが違うとだめした・・・

        XMLHttpRequest cannot load http://localhost:4567/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8888' is therefore not allowed access.
      
  • とりあえずのChromeの起動設定の変更

      open -a Google\ Chrome --args --allow-file-access-from-files --disable-web-security
    

JSONを返すサーバの用意

  • sinatraで3分ぐらいでサクッと作れる
  • gemをインストールして・・・

      gem install sinatra
      gem install json
    
  • コードを書いて・・・

      require "sinatra"
      require "json"
    
      get '/' do
        content_type :json
        data = {
                  id: 10,
                  name: "hoge"
              }
        data.to_json
      end
    
  • ruby xxx.rbで起動

  • すると、http://localhost:4567/{"id":10,"name":"hoge"}って返ってくる

クライアント用のサーバを立ち上げる

  • file:// だと挙動がことなことがあるので、クライアント側の動作用のサーバも準備する
  • pythonが持っているSimpleHTTPServerをつかう
  • python -m SimpleHTTPServer 8888

んー

  • HTTPのことを全然理解していないし、JSのことも理解していないしって、焦っている感じ。
  • Backbone.jsの理解がつらい・・・
  • 「動かす」と「理解して動かす」の間にすごい隔たりがあるなーと思いつつの日々の勉強です・・・