railsアプリ内でajax通信を使って画像データを渡すjsコードを作りました。
picture.js
1 2 $('#save-button').click(function(){ 3 var canvas = document.getElementById('canvass'); 4 var content = canvas.toDataURL('image/png'); 5 var blob = Base64toBlob(content); 6 var fd = new FormData(); 7 fd.append('content', blob); 8 9 $.ajax({ 10 url: "/users/" + gon.user_id + "/indices/" + gon.index_id + "/uploadtoaws", 11 type: "post", 12 data: fd, 13 processData: false, 14 contentType: false, 15 datatype: "text", 16 success: function(data,jqXHR){ 17 console.log(jqXHR); 18 }, 19 error: function(jqXHR, textStatus, errorThrown){ 20 alert(textStatus); 21 alert(errorThrown.message); 22 alert(jqXHR.status); 23 alert(jqXHR.responseText); 24 }, 25 }); 26});
これで明示的なalertは出ないものの通信がurl
に渡っていない。chromeの開発ルール、networkを見るとstatus
がcancelされprovisional headers are shown
が表示されていました。
ググって調べた、
0. cacheを消す
- クロスオリジン(CORS)を設定する
を順に試してcacheが原因ではないようです。2.のクロスオリジンを設定したいのですがやり方がよく分かりません。
ぐぐっても私レベルで理解できるサイトはありませんでした。
どのファイルにどう設定すればよいかアドバイス頂けると嬉しいです。
ruby: 2.3.1
rails: 4.2.10
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。