【发布时间】:2014-07-06 01:24:39
【问题描述】:
在向我的 dojo 1.9.3 请求/xhr 回调函数发送 JSONObject 响应时,我收到了 Invalid character synatx 错误。我用 JSONLint 检查了我的 JSON 格式,它是有效的。真的很困惑我做错了什么。
正在发送的 JSON 格式:
{
"issuer":"CN=***** CA , OU=*******, O=*********, L=****, ST=***, C=**",
"Thumbprint":"*********",
"valid to":"Mon *************",
"valid from":"*****",
"version":2
}
Servlet 代码:
JSONObject cert = new JSONObject();
cert.put("version", x509certificate.getVersion());
cert.put("valid from", x509certificate.getNotBefore());
cert.put("valid to", x509certificate.getNotAfter());
cert.put("issuer", x509certificate.getIssuerDN().getName());
cert.put("Thumbprint", getThumbPrint(x509certificate));
System.out.println(cert);
System.out.println(cert.toString());
out.print(cert);
DOJO/HTML 代码:
<body class="claro">
<script>dojoConfig = {parseOnLoad: true}</script>
<script src='dojo-release-1.9.3/dojo/dojo.js' ></script>
<script type="text/javascript">
require(["dojo/dom", "dojo/on", "dojo/request/iframe", "dom/dom-form", "dojo/dom-
construct", "dojo/json",
"dojo/domReady!"],
function(dom, on, iframe, domForm, domConst, JSON){
on(dom.byId("startButton"), "click", function(){
domConst.place("<p>Requesting...</p>", "output");
iframe("addUser",{
method:"POST",
form:"theForm",
handleAs: "json",
}).then(function(cert){
alert("data received!");
domConst.place("<p>data: <code>" + JSON.stringify(cert) + "</code></p>", "output");
}, function(err){
alert("data denied!!!");
alert(err);
}); }); });
</script>
<form id="theForm" method="post" enctype="multipart/form-data">
<input type="text" name="fname" value="Hello" /><br />
<input type="text" name="lname" value="World" /><br />
<input type="file" name="fileName" value="World" /><br />
<button type="button" id="startButton">Start</button>
</form>
<h1>Output:</h1>
<div id="output"></div>
<button type="button" id="startButton">Start</button>
</body>
</html>
【问题讨论】:
-
你的 JSON 是什么样的?
-
请帮助我。我已经尝试了我所知道的一切。必须使用 Dojo,这对我来说是一个很大的挑战。
-
@user3808671 试图猜测。您正在尝试在 out 语句
out.print(cert);中打印对象 cert 尝试将 JSON 字符串 cert.toString() 输出为out.print(cert.toString());希望它有所帮助跨度> -
嗨弗兰克,我已经试过了。结果相同。回调函数 err 给我一个错误警报。
-
新结果:一旦我运行它,就会提示我下载一个 .json 文件,该文件现在具有 JSON 字符串响应。为什么它没有显示在我的页面上?
标签: javascript json servlets dojo