jquery - 当 $.post utf-8 字符串时,Django 返回 "500 INTERNAL SERVER ERROR"

标签 jquery django

当我尝试发布 utf-8 字符串(例如中文字符串)时,我遇到了 django 总是返回“500 内部服务器错误”的问题。但我尝试发布一个ascii字符串,看起来没问题。此外,它在我自己的 Archlinux 机器上运行正常,但在其他 CentOS 服务器上无法运行。如何避免这个问题?

模板:

 $(".palcesubm").click(function(){
        var location = $('#detail_address').val()
        $.post('/wechat/locate/select/create/',
                {'location':location}, function(){
                window.location = "/wechat/locate/baidu/";
        })
    });

查看:

@csrf_exempt
def create_location(request):
    if request.method == 'GET':
        return render_to_response('create_location.html')
    else:
        print request.POST.get('location')
        request.session['location'] = request.POST.get('location')
        return HttpResponse('success')

最佳答案

您可能会收到 UnicodeEncodeError 因为

request.POST.get('location')

返回一个 unicode 对象。当您尝试打印它时,Python 尝试使用“ascii”编解码器对其进行编码,但由于它包含非 ascii 字符而失败。

如果您确实想打印它,请使用:

print request.POST.get('location').encode('utf-8')

编辑:有关 Python 中编码的更多信息:https://docs.python.org/2/howto/unicode.html

关于jquery - 当 $.post utf-8 字符串时,Django 返回 "500 INTERNAL SERVER ERROR",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26563222/

相关文章:

python - QuerySet 在 shell 中工作但不在 Views.py 中工作 - Django 1.10

django - 即使 DEBUG=False 也记录 SQL 查询

python - 协调两个 celery 任务

python - 类型错误 : "ModelBase is not iterable"

jquery - 如何更改除侧边栏div之外的整个主体的背景颜色

javascript - 如何在 JavaScript 中使用 strtotime 函数

json - 带有自动完成问题的 jQueryUI Ajax 调用 - JSON 正确吗?从旧的自动完成迁移

javascript - 如何在php变量中获取div的文本,而其文本来自js函数

javascript - fullpage.js 向下滚动触发事件?

python - Celery 从 Django 模块内部记录到文件