我想要做的是从单个AJAX调用中获取JSON对象和HTML视图。
我当前的实现是JSON对象隐藏在html的某些部分,只是解析了客户端。
这是好习惯吗?有没有更好的方法呢?
答案 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测试)