使用jquery表单插件上传文件

时间:2011-09-01 07:37:17

标签: javascript jquery jquery-forms-plugin

我有一个输入类型=“文件”的表单。它使用ajax(插件jquery form)提交。 服务器返回json响应。 json数据中有html标签:

{"logs":"<span>vfdvf<\/span>","errors":"<span><\/span>"}

但是当插件获得此响应时,它会在

中传输
{"logs":"<span>vfdvf&lt;\/span&gt;","errors":"<span>&lt;\/span&gt;"}</span></span>

它不是正确的json。我该如何解决?如果表单中没有input type =“file”元素,则一切正常。

这是JS

$('#edit_ext_table_form').ajaxForm({
    dataType: 'html',
    success: function(responseText) {
        console.log(responseText);
    },
    error: function(request) {
        var responseText=request.responseText;
        console.log(responseText);
    }
}

这是PHP

$a = array(
    'logs' => '<span>vfdvf</span>', 
    'errors' => '<span></span>',
);
exit(json_encode($a));

3 个答案:

答案 0 :(得分:1)

您无法通过ajax提交文件,Html 5具有更好的文件上传功能。但在旧版浏览器中,这是不可能的。不确定这究竟是什么打破了你的json,但你的最终目标是无法实现的。

答案 1 :(得分:1)

也许您可以尝试 json dataType

尝试

$('#edit_ext_table_form').ajaxForm({
dataType: 'json',
success: function(result) {
    console.log(result.logs);
    console.log(result.errors);
},
failure: function(result) {
    console.log(result.logs);
    console.log(result.errors);
}});

答案 2 :(得分:1)

帮助

json_encode($a, JSON_HEX_TAG)