【发布时间】:2013-04-02 08:27:47
【问题描述】:
我想做的事:
我有一个基于 symfony2 (php) 的应用程序。一个简单的操作会像这样以 json 格式返回数据
$headers = array(
'Content-Type' => 'application/json'
);
return new Response($data, 200, $headers);
这个动作是像这样从javascript调用的
function loadData(action){
$.ajax({
type: "POST",
url: action,
success: function(data){
console.log(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
}
所以到目前为止,这似乎非常基本。从控制台我可以看到返回的正确数据。这些数据应该放在项目网站的某个地方。
问题:
是否有任何直接的方法可以在 javascript 中从 json 创建 html?实际上我想从项目的逻辑中分离模板(树枝)。那么生成html是否正确,例如在loadData方法的成功回调中?
我可以通过返回 html 而不是 json 来绕过这个问题。但我考虑为我的项目构建某种 rest api,我认为需要 json 进行传输。
有什么建议或想法吗?请分享您的处理方式。
【问题讨论】:
-
当然可以,但是你的 json 在哪里。我的意思是你的 json 响应样本
-
只是一个注释,但对于 JSON 响应,您可以使用
Symfony\Component\HttpFoundation\JsonResponse->create()而无需发送您自己的标头或状态信息。 -
“我可以通过返回 html 而不是 json 来绕过这个问题。但我考虑为我的项目构建某种我认为需要 json 进行传输的 rest api。”你能详细解释一下吗?
-
你可以像 Facebook 那样做,然后使用
$view = $this->renderView('Blah:Blah:some_content.html.twig, $vars)返回预生成的 HTML,然后使用return new JsonResponse(array('view' => $view)),最后使用 jQuery 填充所需的空间,使用return (data) {$('#blah').html(data.view);},但它并不太便携。跨度> -
@Jai json 响应是一组序列化的对象
标签: php jquery ajax json symfony