Я пытаюсь скомпилировать проект https://github.com/kannan4k/django-carpool , пожалуйста, обратитесь к этому проекту репо для этой проблемы.django ajax call return 403 плохой запрос
и в итоге со следующей ошибкой во время вызова ajax.
Не удалось загрузить ресурс: сервер ответил статусом 400 (BAD REQUEST).
Я знаю, что это из-за запроса ajax & CSRF жетоны. нижеследующий мой установка. 1. disable "django.middleware.csrf.CsrfViewMiddleware"
2. На странице new_trip У меня есть кнопка (Postdata), поэтому эта кнопка отправляет запрос ajax.
Мой Вид: -
@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 & it пытается вызвать/save_journey /, что приводит к проблеме. –