Jquery 画布toDataUrl上载到gae
我将画布转换为数据url并将其发布到GAE。post在本地主机上工作,但在部署时返回400。日志中没有错误,而且似乎请求甚至没有发送到我的上载处理程序 下面是执行post的jquery代码Jquery 画布toDataUrl上载到gae,jquery,python,google-app-engine,Jquery,Python,Google App Engine,我将画布转换为数据url并将其发布到GAE。post在本地主机上工作,但在部署时返回400。日志中没有错误,而且似乎请求甚至没有发送到我的上载处理程序 下面是执行post的jquery代码 $('#submitButton').click(function() { stage.toDataURL({ callback: function(dataUrl) { $.ajax({
$('#submitButton').click(function() {
stage.toDataURL({
callback: function(dataUrl) {
$.ajax({
type: "POST",
url: "{{ upload_url|safe }}",
data: {file: dataUrl}
}).done(function( respond ) {
alert(respond);
});
}
});
});
下面是处理post的python代码
类UploadHandler(blobstore\u Handler.BlobstoreUploadHandler):
def post(自我):
logging.info('上传图像')
self.response.headers[“访问控制允许源”]=“*”
你知道怎么回事吗?我知道了。我只是在看400,而不是反应体。正文说端点不支持我发送的内容类型 如果您阅读本教程 您可以使用blobstore创建上载url。创建上载url(“/upload”) 创建的端点仅支持内容类型mulitpart/表单数据 我使用jquery发送数据的was的内容类型为application/x-www-form-urlencoded 所以我的修复方法不是使用blobstore.create_upload_url('/upload'),直接发布到/upload
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)