2014-05-08 34 views
0

我有一個運行在Sencha Touch上的應用程序。它使用表單中的一些數據向Django服務器發出POST請求。這包含文本框和圖像文件。帶有錯誤回調函數的Ajax響應

顯然,一切都很順利。該應用程序能夠正確地將數據發送到服務器,該服務器能夠接收數據並對其進行充分處理(包括圖像文件),並以狀態200回答該數據。客戶機甚至可以接收到該狀態200.但是,回調函數在sencha觸摸應用程序中稱爲失敗者,不成功。

這是客戶端接收響應報頭:

HTTP/1.0 200 OK 
Date: Thu, 08 May 2014 20:59:29 GMT 
Server: WSGIServer/0.1 Python/2.7.6 
Vary: Cookie 
X-Frame-Options: SAMEORIGIN 
Content-Type: text/html; charset=utf-8 
Access-Control-Allow-Origin: * 

我做的POST使用此:

values = form.getValues(); 
var request = { 
    url: 'http://127.0.0.1:8000/profiles/create/', 
    method: 'POST', 
    success: function(conn, response, options, eOpts) { 
     Ext.Msg.alert('Success!', 'We are happy!.'); 
    }, 
    failure: function(conn, response, options, eOpts) { 
     Ext.Msg.alert('Error: status code ', response.status); 

    }, 
    disableCaching: true, 
    xhr2: true, 
    progress: progressIndicator 
} 
form.submit(request) 

如何知道我在做什麼錯?

+0

什麼是 「response.status」 的價值? – lalo

+0

@lalo它是200. –

+0

向我們顯示您的迴應。也許你從服務器沒有發送'成功:真'。你的迴應是json嗎? –

回答

1

sencha docs about form.submit

成功:功能

,將成功響應後調用回調。如果從服務器接收到響應,並且 是success屬性設置爲true的JSON對象,則返回 響應成功, {「success」:true}。

所以你的反應應該是一個有效的JSON和包含success:true這樣的:

{success: true, data: 'mydata'} 
+0

你懂了! 我改變了我的回報來自 返回的HttpResponse(狀態= 200) 到 返回的HttpResponse(json.dumps({ '成功':真, '數據': ''}),狀態= 200) –