【发布时间】:2014-01-03 01:53:04
【问题描述】:
我进行了很多搜索,但似乎没有什么可以完全解决这个问题。我创建了一个 REST API,它具有发送消息的资源。路径是/api/v1/conversation/{type}/{id}/message。对该 URI 进行 POST 调用将为给定对话创建一条消息。
如果我只使用$.post('/api/v1/conversation/sample/sample/message', {message: "All your base are belong to us"});,一切都会很好
但是,我想使用 Restangular,并且由于某种原因,它以我必须使用 request.body 而不是 request.POST.get('message') 的方式发送 POST 数据。如果我必须对每个服务器端 API 执行此操作,这将非常不方便。
这是我的 Restangular 代码:
conversation = Restangular.one('conversation', scope.type).one(scope.type_id);
conversation.post('message', {message: "All your base..."})
为了澄清,它正在向正确的 URI 发送,它只是将发布数据作为有效负载而不是作为表单数据发送。如何配置它以将帖子作为表单数据发送?
编辑: 附带说明一下,我可以通过创建一个实用函数来缓解这个问题:
def api_fetch_post(request):
post = request.POST
if not post:
try:
post = json.loads(request.body.decode(encoding='UTF-8'))
except:
pass
return post
这样我可以接受任何一种 POST 数据。无论如何,有没有办法用 Restangular 发送表单数据?
【问题讨论】:
-
Restangular 是如何解决这个问题的。因为下面的解决方案现在正在运行。
标签: angularjs rest post restangular