この django スニペット [1]を使用して、https Web サイトにリダイレクトしています。POST リクエストでは機能しないことがわかっているので{'SSL': True }
、すべての url POST リクエストにurls.py
. ただし、ビューは要求されたとおりに実行しますが、(アクセス ログで) 常に 301 エラーが発生します。
ビューは ajax リクエストによって「呼び出され」、json オブジェクトを返します。
def confirm(request, username):
if username == request.user.username:
user = get_object_or_404(User, username=username)
if request.method == 'POST':
response_dict = {
'status': True,
'added_total': count,
'username': username,
'message': message
}
return HttpResponse(simplejson.dumps(response_dict), mimetype='application/javascript')
else:
return HttpResponseRedirect('/fx/%s?page=%s' % (username, '1'))
else:
raise Http404(u'Not a valid user')
引数も追加しようとしました{'SSL': True}
が、それでも 301 エラーが発生します。
ajax 投稿リクエストには、次のスニペットも使用します。
$.ajaxSetup({
beforeSend:function (xhr, settings) {
function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie != "") {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
// Only send the token to relative URLs i.e. locally.
xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
}
}
});
私は何を間違っていますか?
編集:これは私のアクションですurls.py
url(r'^confirm/(\w+)/$', confirm),