【问题标题】:JSON or Form Data? What's the preferred way to send data back to the serverJSON 还是表单数据?将数据发送回服务器的首选方式是什么
【发布时间】:2014-07-14 00:31:59
【问题描述】:

我在搞乱 Django 和 AngularJS,试图使用 $http 资源将数据发送回我的服务器。看起来我可以通过如下设置内容类型将数据作为表单发回:

$http({
    url: url,
    data: form_encoded_data,
    method: 'POST',
    headers : {'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'}
});

或者在请求正文中回发 JSON,如下所示:

$http.post(url, json_data)
   .success(function(data, status, headers, config) {
    ...
}

在第一种方法中,我可以通过 request.POST 访问 Django 视图中的表单数据,在第二种方法中,我可以通过 request.body 访问 JSON。它们似乎都有效,但什么被认为是最佳实践?

【问题讨论】:

    标签: ajax django angularjs


    【解决方案1】:

    我不确定 JSON 数据的约定是什么。我确定的是有一个获取表单数据的约定。在没有令人信服的理由使用 JSON 的情况下,我倾向于认为最好坚持使用 request.POST

    【讨论】:

      【解决方案2】:

      我会使用表单,它只是直观地有意义,而且我每次都使用它。

      【讨论】:

        【解决方案3】:

        我更喜欢使用接受对象字面量进行配置的 $http 服务:

         $http({method:'POST',url:'api/customers/add', data: customer})
              .success(function(data) {
                   ...
               });
        

        结果是你可以立即调用 .success 的 promise 对象。它更干净,更易于阅读 IMO。

        注意:customer 通常是 JSON 表示法的数据绑定对象文字,但并非必须如此。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-16
          • 2015-09-12
          • 1970-01-01
          相关资源
          最近更新 更多