Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax JSON还是表单数据?什么';这是将数据发送回服务器的首选方式_Ajax_Django_Angularjs - Fatal编程技术网

Ajax JSON还是表单数据?什么';这是将数据发送回服务器的首选方式

Ajax JSON还是表单数据?什么';这是将数据发送回服务器的首选方式,ajax,django,angularjs,Ajax,Django,Angularjs,我在摆弄Django和AngularJS,试图使用$http资源将数据发送回我的服务器。看起来我可以通过如下设置内容类型将数据作为表单发回: $http({ url: url, data: form_encoded_data, method: 'POST', headers : {'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'} }); 或者在请求正文中使用如下内容发布JSON:

我在摆弄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。这两种方法似乎都有效,但最佳实践是什么

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

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

 $http({method:'POST',url:'api/customers/add', data: customer})
      .success(function(data) {
           ...
       });
结果是promise对象,您可以立即调用它。成功。它更干净,更容易阅读


注意:customer通常是JSON表示法中的数据绑定对象文本,但不一定是

我会选择使用表单,它只是直观地说得通,而且它是我每次都使用的