Как передать HTML-код как POST-данные из формы Jquery на страницу PHP? - PullRequest
0 голосов
/ 24 ноября 2018

Я пытаюсь отправить HTML-код на страницу php в виде данных POST следующим образом:

report_data['finalhtml'] = '\n\n\n<!------ page split ----\>\n<div class="clearfix">'+html+'</div><!------ page split end ----\>\n\n\n';
            var report = JSON.stringify(report_data);
            var report_json = encodeURIComponent(window.btoa(report));
var url = baseurl+"/pdf-report";    
             var newForm = jQuery('<form>', {
              'action': url,
              'method': 'POST',
              'target': '_top'
            }).append(jQuery('<input>', {
               'name': 'report_details',
               'value': report_json,
               'type': 'hidden',
            }))
            .append(jQuery('<input>', {
               'name': 'project_name',
               'value': successdata.ProjectTitle,
               'type': 'hidden'
            }));

                $('body').append(newForm);
                SAT_utilities_js.RemovePageLoader();
            newForm.submit();

Но когда я получаю данные на странице PHP, я получаю сообщение об ошибке как ERR_BLOCKED_BY_XSS_AUDITOR

Я погуглил об этой ошибке и узнал, что мне нужно BASE64 HTML-код.Так что я сделал base64 в JS, но тогда я не получаю правильную декодированную base64 строку в php.Причина в том, что мой JS-объект сначала преобразуется в JSON, а затем кодируется в BASE64.

Проблема заключается в том, что я не могу использовать только base64, а также я не могу использовать только stringify.

Сейчас я не получаю полностью корректного способа отправки моего html-кода на страницу PHP с использованием jQuery FORM и метода POST.

Пожалуйста, предложите любой способ отправки HTML-кода из JS на страницу PHP

1 Ответ

0 голосов
/ 24 ноября 2018

Ваш процесс base64 и stringify кажется неправильным.

Вы действительно хотели, чтобы html-строки base64 были закодированы до преобразования в json

Попробуйте

var finalhtml = '<...html string...>';
report_data['finalhtml'] = btoa(finalhtml);
var report = JSON.stringify(report_data);

Затем вphp

$report_detail = json_decode($_POST['report_detail']);
$base64_html = $report_detail->finalhtml;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...