Reputation: 796
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>',
'errors' => '<span></span>',
);
exit(json_encode($a));
Upvotes: 0
Views: 538
Reputation: 797
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);
}});
Upvotes: 1
Reputation: 2801
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.
Upvotes: 1