【问题标题】:how to pass HTML code as POST data from Jquery Form to PHP page?如何将 HTML 代码作为 POST 数据从 Jquery 表单传递到 PHP 页面?
【发布时间】:2018-11-23 22:29:32
【问题描述】:

我正在尝试将 html 代码作为 POST 数据发送到 php 页面,如下所示:

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

我用谷歌搜索了这个错误,并知道我需要对 html 代码进行 BASE64 处理。 所以我在 JS 中做了 base64,但是我没有在 php 中得到正确的 base64 解码字符串。原因是我的JS Object先转成JSON,然后用BASE64编码。

问题是我不能单独使用base64,我也不能单独使用stringify。

现在我没有得到完整的证明方法来使用 jQuery FORM 和 POST 方法将我的 html 代码发送到 PHP 页面。

请提出任何将 HTML 代码从 JS 发送到 PHP 页面的方法

【问题讨论】:

    标签: javascript php jquery forms


    【解决方案1】:

    您的 base64 和 stringify 流程似乎有误。

    您真的只希望在字符串化为 json 之前对 html 字符串进行 base64 编码

    试试

    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;
    

    【讨论】:

      猜你喜欢
      • 2014-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-19
      相关资源
      最近更新 更多