使用model.save()发布表单

时间:2013-12-24 20:48:35

标签: javascript ajax rest backbone.js

我的理解是,当调用此函数时,它会将表单数据从JSON模型发送到服务器并引用我的URL。

我的问题是在表单发送到服务器之后:

1)为什么服务器必须通过响应响应此发布请求?这不仅仅是单向交易吗? 2)如果服务器在ajax调用后响应,你如何从Backbone或ajax获得这个值?我正在使用的方法调用我认为不会返回任何内容。

来自主干的Get方法(model.fetch())似乎从客户端有意义,您发送GET请求并且服务器响应数据。有人可以谈论一般的回应;为什么它们很重要,以及你应该如何使用它们?

非常感谢。

1 个答案:

答案 0 :(得分:2)

想象一下,如何进入电子商务网站,选择项目,输入信用卡信息以及点击提交按钮。然后,该站点会将您重定向回主页,而不会显示发生了什么。你是第一个想到的“好吧,没有消息是好消息吗?”或“哦,亲爱的,出了什么问题?”

在任何对话中,回复都很重要,既可以确认收据,也可以说明收件人如何处理或计划处理邮件。一个构造良好的服务方法应该至少响应成功创建/更新/删除操作的HTTP 202 ACCEPTED标头,并且HTTP协议绝对需要一些类型的响应。每个请求,即使响应具有空的有效负载并且仅包含HTTP状态消息。

所以,回答你的问题:1)服务器必须回复一些东西,否则你的浏览器会认为HTTP连接失败了。如果响应成功,则200系列中的状态代码是合适的。

2)如果您正在使用原始AJAX,则可以在回调中检查响应的值 - 有关示例,请参阅How can I take advantage of callback functions for asynchronous XMLHttpRequest?。 Backbone从save()调用返回一个jQuery XHR(jqXHR)对象,因此您可以使用它来检查该值。 http://api.jquery.com/jQuery.ajax/#jqXHR

相关问题