401将web2py从localhost移动到PythonAnywhere时未经授权

时间:2015-03-19 18:19:16

标签: jquery ajax web2py pythonanywhere

在我的应用中,我有一个用户个人资料页面,用户可以上传其个人资料照片的图片。此功能在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'))

注意:网站的这部分不是我的代码,而是队友。不幸的是,它现在打破了我的修复它。有很多我改变,但我想尽可能少地改变,以防止打破他做的任何其他事情。

1 个答案:

答案 0 :(得分:1)

你可以发布完整的跟踪吗? (也许有些东西是错误的/与routes.py不同)