我有一个输入类型=“文件”的表单。它使用ajax(插件jquery form)提交。 服务器返回json响应。 json数据中有html标签:
{"logs":"<span>vfdvf<\/span>","errors":"<span><\/span>"}
但是当插件获得此响应时,它会在
中传输{"logs":"<span>vfdvf<\/span>","errors":"<span><\/span>"}</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));
答案 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)