是否有一种方法来加载html和JSON对象


Is there a way to load an html and a JSON object

我想做的是从一个AJAX调用中获得一个JSON对象和一个HTML视图。

我目前的实现是JSON对象隐藏在html的某些部分,只是解析客户端。

这是好的做法吗?有更好的方法吗?

返回一个JSON对象,在中包含HTML :

{ "a": "data", "b" : "data", "view" : "<html>...</html>" }

我将从AJAX调用返回JSON,并在其中一个JSON属性中存储编码后的HTML。这似乎比从HTML响应中解析JSON更简单和稳定。

另一个选项(因为更改原始请求的内容类型的选项对这里的每个人来说都是显而易见的)是发送一个自定义JSON头。

XXX-JSON-Payload: {a:1, b:2}

和读取头从JS (看到getResponseHeader不是一个函数的jQuery方法做那个)。

可以通过将JSON嵌入HTML元素的data属性来实现:

假设您的ajax调用返回这个:

<json data-obj='{"my":"json","data":7}'/>
<div>My View</div>
下面的代码将加载视图,并从属性 中提取数据
<div id="content"></div>
<script>
    $('#content').load('ajax.php', function(data) {
        $(data).siblings('json').remove().data('obj');
    });
</script>

(使用jQuery v1.7.1测试)