Flickr API にアクセスするための OAUTH を実装しようとしています。flickr.com への AJAX 呼び出しが失敗し続けます。
サンプル エラー メッセージ:
XMLHttpRequest cannot load http://www.flickr.com/services/oauth /request_token?oauth_callback=oob&oauth…signature_method=HMAC-SHA1&oauth_timestamp=1368375405647&oauth_version=1.0. Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin.
最初はクロムを使用し、html ファイルを file://path. 以前は、「access-control-allow-origin では null は許可されていません」というエラーが発生していました。HTMLファイルを「ローカルIISサーバー」、「ローカルPython Webサーバー」、「リモートWebサーバー」にコピーすることで、この問題を解決しました。> python -m http.server 8080' を使用して python Web サーバーを作成しました
XMLHttpRequest を使用した flickr.com へのクロス ブラウザー呼び出しが失敗していることに気付きました。このフォーラムで提案されたさまざまな解決策を試しました:
- CORSをサポートしていると思われる新しいChrome 26.0.1410.64 mを使用
- --disable-web-security で chrome を起動しました
- ローカル マシンで python -m http.server 8080 を使用して Web サーバーを作成し、次にリモート マシンで html ファイルをサイトにコピーしました。
- ファイルをローカルの MSFT IIS サーバーにコピーしました
- 数値の IP を避けるために、etc/hosts ファイルに URL を定義しました
それでも同じエラーが発生します (エラー メッセージに関連する URL が含まれています)。
コードクリッピング:
urlString="http://www.flickr.com/services/oauth/request_token?"+
"oauth_callback="+"oob"+'&'+
"oauth_consumer_key="+consumerKey+'&'+
"oauth_nonce="+nonce+'&'+
"oauth_signature="+esignature+'&'+
"oauth_signature_method="+macAlgorithm+'&'+
"oauth_timestamp="+timeStamp+'&'+
"oauth_version=1.0";
$.ajax({
url: urlString,
success:function(data){
alert(data);
}
});