【问题标题】:Ajax response with wrong callback function带有错误回调函数的 Ajax 响应
【发布时间】:2014-05-08 21:11:23
【问题描述】:

我有一个在 Sencha Touch 上运行的应用程序。它使用表单中的一些数据向 Django 服务器发出 POST 请求。这包含文本字段和图像文件。

显然,一切正常。应用程序能够正确地向服务器发送数据,服务器能够接收数据并对其进行充分处理(包括图像文件)并以状态 200 回答它。客户端甚至收到此状态 200。但是,回调函数在煎茶触摸应用中调用的是失败的,不是成功的。

这是客户端收到的响应头:

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)

如何知道我做错了什么?

【问题讨论】:

  • 什么是“response.status”值?
  • 向我们展示您的回复。也许你没有从服务器发送success: true。你的响应是 json 吗?

标签: django post mobile sencha-touch sencha-touch-2


【解决方案1】:

来自sencha docs about form.submit

成功:函数

成功响应后将调用的回调。一种 如果从服务器收到响应,则响应成功,并且 是一个 JSON 对象,其中成功属性设置为 true, {“成功”:真}。

所以你的响应应该是一个有效的 json 并且包含 success:true 像这样:

{success: true, data: 'mydata'}

【讨论】:

  • 你明白了!我将返回从 return HttpResponse(status=200) 更改为 return HttpResponse(json.dumps({'success' : True,'data':''}),status=200)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-02
  • 2011-06-26
  • 1970-01-01
  • 2019-05-26
  • 2014-10-28
相关资源
最近更新 更多