File upload with jquery form plugin
i have a form with input type="file". it submits using ajax (plugin jquery form). Server returns json response. There are html tags in json data:
{"logs":"<span>vfdvf<\/span>","errors":"<span><\/span>"}
but when plugin gets this response it transferred in
{"logs":"<span>vfdvf<\/span>","errors":"<span><\/span>"}</span></span>
it is not correnct json. How can i fix it? If there is no input type="file" element in form, all works fine.
Here is JS
$('#edit_ext_table_form').ajaxForm({
dataType: 'html',
success: function(responseText) {
console.log(responseText);
},
error: function(request) {
var responseText=request.responseText;
console.log(responseText);
}
}
Here is PHP
$a = array(
'logs' => '<span>vfdvf</span>',
'error开发者_运维技巧s' => '<span></span>',
);
exit(json_encode($a));
You cannot submit a file via ajax, Html 5 has much better file upload capabilities. But in older browsers its not possible. Not sure if thats exactly what is breaking your json, but your end goal is unachievable.
maby you can try json dataType.
Try
$('#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);
}});
Helps
json_encode($a, JSON_HEX_TAG)
精彩评论