2011/5/10 以下の訂正をしました。 s/prefetch/preflight/g JavaScriptのクロスドメイン通信で微妙な話があったので書いてみます。ちなみにクライアントサイドJavaScriptの話です。下記仕様に敬意を表して以下ではクロスオリジンと書きます。一般にクロスドメイン通信と呼ばれているものと同じ意味で使います。 Cross-Origin Resource Sharing XMLHttpRequest2(XHR2) WebブラウザからXMLHttpRequest(XHR)で外部のWeb APIを直接叩こうとするとクロスオリジンの制限に当たります。制限の必要性は次の説明がわかりやすいのでリンクを張っておきます。 Same-Originポリシーの必要性 クロスオリジン制限がある中でWebブラウザから直接Web APIを叩こうと先人は知恵を絞ってきました。iframe
Your [Sinatra](http://sinatrarb.com) app: ```ruby get '/' do callback = params.delete('callback') # jsonp json = {'your' => 'data'}.to_json if callback content_type :js response = "#{callback}(#{json})" else content_type :json response = json end response end ``` Your HTML: ```ruby ``` You can also do the same with jQuery: ```ruby $.ajax({ type: 'get', url: '/', dataType: 'jsonp', success: functio
ふとjsonpを使おうと思ったんだけど たぶんぼくのドキュメント読解力が足りないせいで無駄に時間かかった。 忘れないようにメモ。 $.ajax({ type: "GET", url: "http://sample.com/", data: { "param": "hogehoge", }, dataType: "jsonp", jsonp: "callBack", success: function(data) { /* success */ }, complete: function(data) { /* complete */ } }); dataTypeをjsonpにするとjQueryがcallbackパラメータを自動で入れてくれる。 callback=jsonp1234391216435みたいな。 jsonpオプションを付けると↑のcallbackの部分を指定した名前にできる。 サ
Bing のレスポンスで「invalid label」というエラーが発生した原因 Bing のレスポンスで「invalid label」というエラーが発生した原因は、Bing で JSONP として処理をするには、「JsonType」と「JsonCallback」をリクエスト時に設定していなかったことが原因。これをリクエスト時に設定すれば、「invalid label」のエラーは発生しない。 「JsonType」には JavaScript で処理するために、「callback」値を設定する。「JsonCallback」には callback の関数名を設定する。 id:sshi さんにコメントで、JSON では数値を「"」で囲まなくていい仕様と指摘されていた。自分の勘違いに気がついたのは午前 2時過ぎだったので、今になってやっと訂正…。 console.log() で値を確認するために、F
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く