0

当我从 Ajax 请求将信号发送回客户端时,我使用这种形式:

<!--a_b-->

因此,如果某些我不解析它,并且它最终出现在 html 中,它不会破坏任何东西,因为它是一个评论。

ab表示传达信息的值,而_是分隔符。

我不禁想知道其他人如何从 ajax 请求中发送回“控制”信号。

使用 ajax 将控制信号从服务器发送到客户端的最佳方式是什么?

4

4 回答 4

6

我只会使用 JSON。无论如何,您的客户必须知道如何解释响应,因此在 html 注释中对其进行编码并不是很有用。这只是意味着您需要额外的工作来稍后解析。这if some how I don't parse it只是意味着您有一个应该修复的错误。

于 2012-05-15T20:51:35.350 回答
3

绝对使用 JSON 包。它不可能意外地“出现在 html 中”,所以这不应该是一个问题。

接收 JSON 响应,检查您的特殊属性(指令),然后根据返回的内容做出相应的响应。

{ "reload": "http://www.google.com" }

或者

{ "alert": "HEY BUDDY!"}
于 2012-05-15T20:52:29.330 回答
1

从技术上讲,ajax CALL 应该接收 XML。确实有一个 xhr.responseXML 用于接收此类数据。

你不会破坏任何东西...

于 2012-05-15T20:52:05.507 回答
0

使用jQuery.ajax,它只会“代替你做这项工作”。一个非常简单的例子:

$.ajax({
    url:'http://example.com/path?foo=bar',
    success: function(data) {
        // data won't land anywhere unless you want it to
    }
});

以及如何编码您的响应?我会说不要认为只使用 JSON。我看到返回 JSON 编码对象(而不是 JSON 编码字符串)的好处,因为可以使用新变量轻松扩展对象而不会破坏现有代码,而且几乎没有开销。

所以一个典型的反应可能看起来像 dontGoPlastic 说的:

{"key":"value"}

然后在浏览器中,您可以解析它并使用以下命令访问“key”:

var response = JSON.parse(data);
alert(response.key);
于 2012-05-16T00:56:33.737 回答