Php 我可以通过HTML文件返回JSON数据吗?

Php 我可以通过HTML文件返回JSON数据吗?,php,jquery,json,Php,Jquery,Json,这真的让我很烦,因为我不能用echo回复客户 我需要用JSON响应以下数据 header("Content-type: application/json"); $response = array(); $response['username'] = $user; $response['password'] = $pass; json_encode($response); 但是,我需要通过HTML文件执行此操作,如: Template::set('response', json_encode($

这真的让我很烦,因为我不能用echo回复客户

我需要用JSON响应以下数据

header("Content-type: application/json");
$response = array();
$response['username'] = $user;
$response['password'] = $pass;
json_encode($response);
但是,我需要通过HTML文件执行此操作,如:

Template::set('response', json_encode($response));
原因是,我的框架始终需要如下页面输出:

Template::set('response', array()); 
否则它会尝试自己执行它。(这是错误页面或空html响应)

所以我不能用JSON头和echo来响应。我基本上是想找个解决办法。如果我无法做到这一点,我将稍微调整我的框架以响应标题,但如果可能的话,我更喜欢使用一些变通方法

顺便说一句,我的jQuery就是这样运行的。我相信这里没有问题,但我可能弄错了,所以也来看看这个

$("#doLogin").click(function(e) {
    e.preventDefault();  // prevent normal form submit
    $("#login-result").html('<img src="<%THEME%>images/loading.gif">');
    var formData = $("#loginForm").serialize();
    $.post("?page=login", formData, function(response)
    {
        alert(response.username);
        $("#login-result").html(response.username);
    },'json');
});
$(“#doLogin”)。单击(函数(e){
e、 preventDefault();//防止正常表单提交
$(“#登录结果”).html('images/loading.gif“>”);
var formData=$(“#loginForm”).serialize();
$.post(“?page=login”),表单数据,函数(响应)
{
警报(response.username);
$(“#登录结果”).html(response.username);
}“json”);
});

你要么修改框架的代码,要么适应它

我建议您将业务逻辑和输出分开。在处理请求时,您不应进行任何回显,而应准备输出,并将输出变量传递给模板。模板应独立于业务逻辑运行,仅取决于传递的变量。这将使您的代码更具可读性和易于修改


至于您当前问题的解决方案:我将通过添加一个传递数组的选项来扩展模板框架,框架将把它呈现为一个json对象。这将保持业务逻辑和视图的分离,仍然为您的需要提供一个简单的解决方案。

您可以通过doi绕过框架试图做的事情ng:

header('Content-type: application/json');
echo json_encode($json);
exit;

但是,如果框架不具备发出内置JSON的能力,我会非常惊讶。

这没有任何意义。你能试着详细说明你希望完成什么以及为什么吗?我会更新我的问题主题,在这里回答太长了,等一下。@LyverKinkki:“……在这里回答太长了。。。“即使不是,改进问题的正确方法是编辑问题。你使用什么框架?