Wiz*_*Wiz 1 python ajax jquery pyramid
我有一个Ajax文件上传与此代码:
$('#photo-input:file').change(function() {
var photo = this.files[0];
var caption = $('.photo-caption').val();
type = photo.type;
if (photo.type != 'image/png' && photo.type != 'image/jpg' && !photo.type != 'image/gif' && photo.type != 'image/jpeg' ) {
alert('Sorry, you may only upload png, jpg, jpeg, or gif images.');
return false;
}
$('.photo-post-submit').click(function () {
var formData = new FormData();
formData.append('photo', photo);
$.ajax({
url: '/post',
type: 'POST',
data: {'photo' : formData, 'caption' : caption},
cache: false,
contentType: false,
processData: false,
success: function () {
}
}, 'json');
});
});
Run Code Online (Sandbox Code Playgroud)
但是当我打电话request.POST['caption']或者request.POST['photo']我收到错误时:
Not an HTML form submission (Content-Type: application/xml)
Run Code Online (Sandbox Code Playgroud)
出了什么问题?
看起来好像你在$.post和$.ajax方法之间感到困惑,因为你传递了一个单独的json参数(它$.ajax不接受作为dataType参数).
此外,你真的不应该设置contentType到false,并要设置processData到false,闹了一个非常混乱的组合,以什么金字塔将有什么jQuery让该组合做.
要将cache参数设置为的POST发送到服务器false,请使用:
$.ajax({
url: '/post',
type: 'POST',
data: {'photo' : formData, 'caption' : caption},
cache: false,
dataType: 'json',
success: function () {
}
});
Run Code Online (Sandbox Code Playgroud)
请注意,dataType设置为json,这意味着您的Pyramid视图需要返回 JSON,jQuery AJAX代码需要JSON响应.
| 归档时间: |
|
| 查看次数: |
861 次 |
| 最近记录: |