2015-06-07 49 views
1

我試圖讓我的用戶在提交後重定向,但我不斷收到AJAX失敗。如果AJAX發佈成功將用戶重定向到新的燒瓶路線

  $.ajax({ 
      url: '/testing', 
      contentType: 'application/json', 
      type: 'post', 
      dataType : 'json', 
      data: JSON.stringify(data), 
       success: function (data) { 
       console.log(data); 
       // ajax success callback 
      }, error: function (response) { 
       alert('ajax failed'); 
       // ajax error callback 
      }, 
      }); 
     }); 

這裏是我的燒瓶路線

@app.route('/testing', methods=['GET', 'POST']) 
def testing(): 
    return url_for('results') 

@app.route('/results', methods=['GET', 'POST']) 
def results(): 
    return render_template('index.html') 
+2

爲什麼不使用表單,這是什麼形式,提交後重定向? – adeneo

+0

這是一個簡化版本,我從用戶滑塊位置拉動jQuery中的變量。然而,你會如何表示一個表單,數據變量會包含一串數字。 – nadermx

+0

@JohnS這兩個編輯工作!謝謝 – nadermx

回答

0

如果指定`數據類型:「json``,jQuery將它傳遞給之前嘗試解析響應爲JavaScript對象(或陣列)成功經理。如果響應不是有效的JSON,則JQuery調用錯誤處理程序。

如果要返回類似於下面的東西,它不是有效的JSON:

/xxxx/xxxx 

有效的JSON看起來是這樣的:

{ "url" : "/xxx/xxx" } 

另一種方法是更改​​爲dataType: 'text'。在這種情況下,JQuery在調用成功處理程序之前不會解析響應。它只會將響應文本傳遞給成功處理程序。