javascript - 如何将 HTML 代码作为 POST 数据从 Jquery 表单传递到 PHP 页面?
问题描述
我正在尝试将 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 页面的方法
解决方案
您的 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;
推荐阅读
- java - 通过 JDBC 执行时,mysql LOAD DATA LOCAL INFILE 语法错误
- arduino - 通过蓝牙 hc05 模块将数据从一个 arduino 发送到另一个
- json - 确保 JSON 对象中的日期格式相同
- shopify - Shopify 页面模板产品循环
- javascript - 仅在 jQuery 中覆盖特定元素的委托事件处理程序
- swiftui - (SwiftUI 变更检测)这段代码有什么问题?
- jupyter-lab - jupyter 实验室重新打开以前关闭/关闭的笔记本
- python - 使用python查找我的应用程序的时间使用情况
- apache - 更新 SSL 证书后出现错误。阿帕奇网络服务器
- chart.js - Chartjs添加数据时出乎意料的视觉动画效果