有没有办法加载html和JSON对象

时间:2011-12-12 02:48:20

标签: php jquery ajax

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

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

这是好习惯吗?有没有更好的方法呢?

4 个答案:

答案 0 :(得分:4)

使用HTML

返回一个JSON对象
{ "a": "data", "b" : "data", "view" : "<html>...</html>" }

答案 1 :(得分:0)

另一个选项(作为改变原始请求的内容类型的选项对于每个人来说似乎很明显)将是发送自定义JSON标题。

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

从JS中读取该标题(参见getResponseHeader is not a function了解jQuery方法)。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

您可以通过将JSON嵌入到HTML元素数据属性中来实现:

假设你的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测试)