在我的应用中,我有一个用户个人资料页面,用户可以上传其个人资料照片的图片。此功能在localhost上运行时可以正常工作,但由于迁移到PythonAnywhere后因401 Unauthorized而失败。
是否有任何理由在@auth.requires_login()
装饰功能上使用401失败,尽管已登录?
ajax电话:
$('#image_form').submit(function(event){
event.preventDefault();
var up = new FormData(this);
$.ajax({
url: '/dids/default/update_profile',
data: up,
processData: false,
contentType: false,
type: 'POST',
success: function(data){
console.log(data);
}
});
});
形式:
<div id=edit_div type="hidden">
<form id="image_form" type="hidden" enctype="multipart/form-data" action="update_profile" method="post">
<input id="image" name="image" type="file"/>
<input name="is_img" type="hidden" value="True"/>
</form>
</div>
控制器功能:
@auth.requires_login()
def update_profile():
data = request.vars
user_id = auth.user_id
db(db.users.user_id == user_id).update(profile_img=data['image'])
return
请注意,我也尝试在db.users.profile_img.store()
之前使用.update()
并获得相同的结果
表格定义:
db.define_table('users',
Field('user_id',),
Field('username'),
Field('first_name'),
Field('last_name'),
Field('profile_img', 'upload'), # image field
Field('about', 'text'),
Field('email'),
Field('dids', 'reference dids'),
Field('feed'))
注意:网站的这部分不是我的代码,而是队友。不幸的是,它现在打破了我的修复它。有很多我会改变,但我想尽可能少地改变,以防止打破他做的任何其他事情。
答案 0 :(得分:1)
你可以发布完整的跟踪吗? (也许有些东西是错误的/与routes.py不同)