从JavaEE通过PHP发送HTML数据,而不使用JSON对象进行更改
我必须向前端发送包含消息和HTML代码的响应,如下所示从JavaEE通过PHP发送HTML数据,而不使用JSON对象进行更改,php,html,json,Php,Html,Json,我必须向前端发送包含消息和HTML代码的响应,如下所示 01|<form method="post" action="https://sample.php" id="frm_submit"> <input type="hidden" name="Name" value="name"> <input type="hidden" name="Pass" value="pass"> </form><script>doc
01|<form method="post" action="https://sample.php" id="frm_submit">
<input type="hidden" name="Name" value="name">
<input type="hidden" name="Pass" value="pass">
</form><script>document.getElementById('frm_submit').submit();</script>
所以前端接收
{"success":true,"url":" \t\t\t\t \t\t\t\t\t\t\t\t\t \t\t\t\t\t
<form method=\"post\" action=\"https:\/\/sample.php\" id=\"frm_submit\"> \t\t\t\t \t\t\t\t \t\t\t\t \t\t\t\t\t
<input type=\"hidden\" name=\"Name\" value=\"name\"> \t\t\t\t \t\t\t\t\t
<input type=\"hidden\" name=\"Pass\" value=\"pass\"> \t\t\t\t \t\t\t\t\t
\t\t\t\t\t<\/form> \t\t\t\t\t
<script> \t\t\t\t\t\tdocument.getElementById('frm_submit').submit(); \t\t\t\t\t<\/script> \t\t\t\t\t"}
{“success”:true,“url”:“\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t文档.getElementById('frm\u submit').submit();\t\t\t\t\t\t\t\t\t“}
此处无法正确显示HTML代码。因为它在通过PHP时发生了变化。如何确保HTML代码在结束前不会更改。在回显JSON之前,您必须对JSON进行
解码()
因为encode()
scape您的HTML不会因引号或斜杠而崩溃
您必须正确地访问JSON变量。它一定看起来像:
$outObj = CJSON::decode($outObj);
echo $outObj->success; // To access to yor boolean value
echo $outObj->url; // To access to yor HTML
从JavaEE发送字符串或URL编码的字符串不起作用,因为某些值在通过PHP服务器传递时会发生更改
因此,我发现最好的方法是从JavaEE端使用Base64编码,PHP不会更改字符串。
在前端解码并显示代码,如下所示,
<script>
function b64DecodeUnicode(str) {
return decodeURIComponent(atob(str).split('').map(function(c) {
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
}).join(''));
}
var words = b64DecodeUnicode(base64_encoded_string_goes_here);
document.write(words);
</script>
函数b64DecodeUnicode(str){
返回decodeURIComponent(atob(str).split(“”).map(function(c){
返回“%”+('00'+c.charCodeAt(0).toString(16)).slice(-2);
}).加入(“”);
}
var words=b64DecodeUnicode(这里是base64编码的字符串);
文件。书写(文字);
<script>
function b64DecodeUnicode(str) {
return decodeURIComponent(atob(str).split('').map(function(c) {
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
}).join(''));
}
var words = b64DecodeUnicode(base64_encoded_string_goes_here);
document.write(words);
</script>