2014-10-23 3 views
0

Я посылаю запрос Ajax пост с JQuery:Перенаправление страницы после запроса Ajax в JavaScript

$(function(){ 

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

}); 

На мой взгляд, я могу получить этот запрос. Затем я сохранить данные в seesion и перенаправить запрос на другой URL с HttpResponseRedirect

@csrf_exempt 
def confirm_location(request): 
    if request.method == 'GET': 
     lat = request.session.get('latitude') 
     lng = request.session.get('longitude') 
     area, detail_address = get_area_and_detail_address(lat, lng) 

     t= loader.get_template('confirm_location.html') 
     html = t.render(Context({'area':area, 'detail_address': detail_address})) 
     return HttpResponse(html) 

    else: 
     request.session['location'] = request.POST.get('location') 
     redirect_url = '/wechat/stores/direct/list?first_level='+ str(request.session.get('first_level')) 

     print redirect_url 
     return HttpResponseRedirect(redirect_url) 

Вот вид перенаправленному URL,

def direct_store_list(request): 

    first_level = request.GET.get('first_level') 
    request.session['first_level'] = first_level 
    store_level_list = get_store_level_list(first_level) 
    merchant_list = [] 
    location ='' 

    lat = request.session.get('latitude') 
    lng = request.session.get('longitude') 
    if request.session.get('telphone') is None: 
     if request.session.get('location') is None: 
      location = get_store_location(lat,lng) 
     else: 
      location = request.session.get('location') 
      del request.session['location'] 
    else: 
     if request.session.get('location') is None: 
      location = get_user_default_location(request.session.get('telphone')) 
     else: 
      location = request.session.get('location') 
      del request.session['location'] 

    merchant_list = get_merchant_list(first_level,lat,lng) 

    t= loader.get_template('direct_store_list.html') 
    html = t.render(Context({'store_level_list':store_level_list, 'merchant_list':merchant_list, 
          'location':location})) 

    return HttpResponse(html) 

В терминале ответа HTTP 200 OK, но страница Дон» t перенаправить на эту страницу как обычно HttpResponseRedirect. Как решить эту проблему? Спасибо

[23/Oct/2014 14:34:23] "POST /wechat/locate/select/current/ HTTP/1.1" 302 0 
[23/Oct/2014 14:34:24] "GET /wechat/stores/direct/list?first_level=1 HTTP/1.1" 200 2452 

ответ

0

Если вы отправляете запрос с помощью AJAX ($ .post), что вы будете перенаправлять? Решение вы можете отправить URL-адрес для перенаправления и выполнения window.location = redirectionURL в вашей обработке ответов $ .post.

0

У вас нет кода в вашем JS для обработки результата сообщения Ajax, поэтому ничего не произойдет.

Однако, если вы хотите перенаправить, я не понимаю, почему вы используете Ajax вообще: просто делайте обычный POST.

Смежные вопросы