我不明白为什么这不起作用。
我的站点中有一个由 ajax 请求填充的输入。
我想用htmlCode填充它,但是尝试时它是空的。
<form name="form" id="form" method="post" action="secondpage" />
<input type="hidden" name="htmlCode" id="htmlCode"/>
</form>
$.ajax({
url : url,
type: "POST",
async: true,
data : {
"requestData": JSON.stringify(request)
},
success: function(data, textStatus, jqXHR){
var response = data.methodResult;
alert(response.htmlCode);
document.getElementById("htmlCode").value = response.htmlCode;
},
error: function (jqXHR, textStatus, errorThrown) {
}
});
警报显示 html代码,所以,我确定它存在。
我在 jsp 中读取了变量:
System.out.println("htmlCode Value - " + request.getParameter(htmlCode));
这是空的。
如果我更改 REST 服务器,并返回"hello"而不是 htmlCode,则会填充它。
我是否正在尝试设置任何禁止字符或其他内容?
我得到了解决方案,我应该对 html 文本进行 UTF-8 编码
当你使用JSON.stringify时它能工作吗?
document.getElementById("htmlCode").value = JSON.stringify(response.htmlCode);
文档:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
试试这个
$.ajax({
url : url,
type: "POST",
async: true,
data : {
"requestData": JSON.stringify(request)
},
success: function(data, textStatus, jqXHR){
document.getElementById("htmlCode").value = data;
},
error: function (jqXHR, textStatus, errorThrown) {}
});