キャンバスをデータ URL に変換し、GAE に投稿します。投稿は localhost で機能しますが、展開すると 400 が返されます。ログにエラーはなく、リクエストがアップロード ハンドラに届いていないようです。
投稿を行うjqueryコードは次のとおりです
$('#submitButton').click(function() {
stage.toDataURL({
callback: function(dataUrl) {
$.ajax({
type: "POST",
url: "{{ upload_url|safe }}",
data: {file: dataUrl}
}).done(function( respond ) {
alert(respond);
});
}
});
});
投稿を処理するPythonコードは次のとおりです
クラス UploadHandler(blobstore_handlers.BlobstoreUploadHandler): def post(self): logging.info('画像のアップロード') self.response.headers["Access-Control-Allow-Origin"] = "*"
try:
data = self.request.get('file')
data_to_64 = re.search(r'base64,(.*)', data).group(1)
decoded = data_to_64.decode('base64')
logging.info('Create the file')
file_name = files.blobstore.create(mime_type='image/png')
logging.info('Open the file and write to it')
with files.open(file_name, 'a') as f:
f.write(decoded)
logging.info('Finalize the file. Do this before attempting to read it.')
files.finalize(file_name)
key = files.blobstore.get_blob_key(file_name)
url = '/serve/%s' % key
self.response.out.write('{ "url": "' + url + '" }')
except Exception, e:
logging.error(e)
何がうまくいかないのですか?