私はプロジェクトをコンパイルしようとしていますhttps://github.com/kannan4k/django-carpool このプロジェクトのレポを参照してください。django ajaxコール返信403悪い要求
となり、ajax呼び出し中に次のエラーで終了します。
リソースの読み込みに失敗しました:サーバーはステータス400(BAD REQUEST)で応答しました。
私はこれがajax投稿要求& CSRFトークンのためだと知っています。 以下は私の設定です。 1.無効"django.middleware.csrf.CsrfViewMiddleware"
.2. new_tripページでこのボタンがajaxリクエストを送信するようにボタン(Postdata)があります。
マイビュー: -
@login_required
def save_journey(request):
if request.is_ajax() and request.method == "POST":
try:
res = json.loads(request.body)
cords = res['cords']
cords = [[x['d'], x['e']] for x in cords]
distance = res['distance']
start_place = res['start']
end_place = res['end']
clusters = clusterize_latlngs(cords, distance)
time = datetime.datetime.strptime(res['time'], "%m/%d/%Y %H:%M")
Trip.objects.create(user=request.user, time=time, cluster=json.dumps(clusters), travel_distance=distance,
start_place=start_place, end_place=end_place)
return HttpResponse()
except:
return HttpResponseBadRequest()
else:
return HttpResponseNotAllowed(['POST'])
Ajax呼び出し(home.js)
function postData() {
radius = 0;
var url = "/save_journey/";
var dataType = 'json';
if (type == 'r') {
radius = $('#radius').val();
url = "/get_results/";
dataType = 'html';
}
var data = JSON.stringify({
cords: myroute,
time: document.getElementById('dateStart').value,
start: document.getElementById('startPlace').innerHTML,
end: document.getElementById('endPlace').innerHTML,
radius: radius,
distance: distance
});
$.ajax({
type: "POST",
url: url,
dataType: dataType,
data: data,
success: function (data) {
if (type == 'r') {
window.location.href = "/search_results/";
}
else {
window.location.href = '/trip_success/';
}
},
error: function() {
console.log('Error getting options list...')
}
});
console.log(data);
}
このコードは/ save_journey/URLを呼び出すことができません。 スタックオーバーフローから多くの答えを試しました&は何が問題であるか把握していませんでした。
すべての例外をキャッチして、単にビューの '403 'を返すので、何が間違っているのか把握するのは非常に難しいです。すべての例外を印刷し、質問を適切な詳細で更新します。 – v1k45
例外が発生した場合は、特にBad Requestを返すようにコードに指示しています。そうすることで、実際に問題をデバッグするための情報を慎重に隠してしまったことになります。その裸のtry/exceptを削除してください。 –
@ v1k45: - コメントありがとう。私はここにコード全体を投稿することはできませんので、レポを見てください: - https://github.com/kannan4k/django-carpool 私は/ new_tripページを訪問すると、自宅でPostData()メソッドを呼び出すボタンがあります。 js&それは問題を引き起こす/ save_journey /を呼び出そうとします。 –