2017-09-20 96 views
0

我使用$.ajax來請求數據,但我怎樣才能讓頁面同時切換?如何通過ajax請求切換頁面並填充數據?

在我的JS:

$.ajax({ 
    type:'post', 
    url:'/api/server_payment', 
    ... 
    success:success_func, 
}) 

function success_func(response){ 
    ... 
} 

在我views.py:

def server_payment(request): 

    if request.method == 'POST': 
     # I don't know what to write here, because there I will switch the web page, and then fill the request data to the switched template. 

編輯

因爲我想通過AJAX的意見傳遞數據.py,並在views.py我想切換到一個新的網址,並在新的URL,我W生病呈現傳遞的數據。 因爲使用ajax requert我會在ajax回調函數中得到響應。

+0

這個問題並沒有道理。如果你想要去一個新的頁面,爲什麼要打擾Ajax呢? –

+0

如果request.method =='POST'只處理你的數據'''如果成功,發送你想重定向到的url,然後用js重定位到這個url。或者讓你的問題更清晰:)。 – Bestasttung

+0

@DanielRoseman因爲ajax請求處於回調方法。 – 244boy

回答

0

您剛剛從阿賈克斯將您的數據與發佈數據的看法:

file.js

data = { 
    'key': value, 
    'another_key': another_value, 
    // as many as you need 
    ... 
} 
$.ajax({ 
    type:'post', 
    url:'/api/server_payment', 
    data: data 
    ... 
    success:success_func, 
}) 

function success_func(response){ 
    ... 
} 

現在,在你看來server_payment它們存儲在會話:

def server_payment(request): 

    if request.method == 'POST': 
     request.session['key'] = request.POST.get('key') 
     request.session['another_key'] = request.POST.get('another_key') 
     ... 
     return HttpRedirectResponse('/other/url') 

現在在您的其他視圖中(對應於'/ other/url'的視圖,您將訪問request.session中的數據。他其它的觀點,通過坡平他們清空request.session字典獲取數據:

views.py渲染數據

def another_view(request): 
    data = {} 
    data['key'] = request.session.pop('key', "NOT_FOUND") # this will prevent from raising exception 
    data['another_key'] = request.session.pop('another_key', "NOT_FOUND") 
    ... 

    return render('/your/template.html', data) 

我想用AJAX將數據傳遞到views.py,並在views.py我想切換到一個新的網址,並在新的網址,我會渲染傳遞的數據。

我不明白的是爲什麼你沒有在很好的觀點直接發送您的文章數據,而不是渲染有觀點獲得這個職位數據,並重定向到另外一個。

+0

如果我使用ajax請求,我是否無法返回渲染(請求,'xxx/template.html')?因爲它不會跳過網頁。 – 244boy