如何发送带有额外元数据的html,以便JS (ajax)知道如何处理响应
how to send html with additional metadata so JS (ajax) knows what to do with response?
我只使用AJAX发出请求,我的大多数请求返回html,我加载到div#内容(不仅如此,但让我们说它是最常见的动作)。当我必须发送错误信息时,例如当用户会话过期时,就会出现问题-然后我必须"清除用户桌面"(替换整个body,而不仅仅是#content)。Ajax加载函数,不知道它会得到什么,所以服务器必须发送一些额外的信息,如何处理它的响应。
我想自定义标题,但想知道是否有一些其他的可能性或"最佳实践"这个问题。
你可以发送回的不仅仅是一个HTML片段放入#content
,而是一个JavaScript片段来执行,或者是一个JSON文档,带一个键来描述如何解释它
有几种可能性:
-
您可以使用
<meta>
html标签来描述问题 -
你也可以简单地发送一个隐藏的
<div>
或<span>
或任何东西并将其从AJAX接收端的结果中删除。
如果您正在加载可能附加元数据的内容,则可能希望发送回JSON。虽然它看起来很邋遢,但它工作得很好,并且更容易从中提取数据。
{"body": "<h1>I'm a title!</h1>", "errors": []}
{"body": "<h3>Session Expired</h3>", "errors": ["sessionExpired"]}
你可以将它与HTTP状态码结合起来,比如"422",它将启动错误回调,以进一步定制和专一化你的代码。
检查你是否有任何没有状态码的错误,你所要做的就是请求response.errors.length,看看它是否为,例如,0..在这种情况下,你知道没有错误。否则你会得到一系列已经发生的错误你可以循环它们来处理这些问题。要取出正文,只需执行$(response.body)—现在您就有了一个可以插入到任何地方的jquery化的html块。
相关文章:
- 不再使用innerHTML进行AJAX响应.(代码未得到响应)
- 为什么可以't我使用了AJAX响应的一部分
- Ajax响应转换
- 如何在数据表中设置从Ajax响应选中的复选框
- 在Javascript中的ajax响应之后未调用Dropdown事件
- RubyonRails-Ajax响应的问题
- Ajax:Ajax响应中的链接不起作用
- 如何执行ajax响应返回的javascript函数
- 带有 AJAX 响应或 AJAX 响应的 IF 条件.响应.Text 不起作用
- 正在检查ajax响应中的错误数据
- 如何从ajax响应中重新加载整个页面
- 如何使用jQuery/Ajax响应特定的提交按钮
- 是浏览器在AJAX响应中自动处理的HTTP标头
- Masony无法处理ajax响应
- 使用yii2表单等待ajax响应
- jquery返回ajax响应和用户定义的变量到函数
- 使用Ajax响应更新TextBox
- 如何在jquery ajax响应后设置jquery滑块的起始值
- Rails 4中不执行Ajax响应
- jquery解析ajax响应