我在使用转义的HTML JSON数据设置HTML属性时遇到问题。
我明白了:
Uncaught SyntaxError:时间戳的数据定义上的意外数字。
我可以在JSON中设置整数值吗?如何将此JSON数据转义为将其放入HTML数据表单数据属性?
这是我的代码:
<input name="file" type="file" id="uploadinput"
class="cloudinary-fileupload" data-cloudinary-field="image_upload"
data-form-data="" ></input>
<script>
var data = { "timestamp": 2013-05-06 00:20:17.713,
"callback": "https://www.mcbjam.com/Scripts/vendor/cloudinary/html/cloudinary_cors.html",
"signature": "99c35c139c34e2e42ba9e7af251686015c10e5f3",
"api_key": "789575445683743" };
$('#uploadinput').attr('src', encodeURI(data));
</script>
答案 0 :(得分:2)
问题在于:
"timestamp": 2013-05-06 00:20:17.713
JavaScript没有日期文字,虽然您没有使用JSON(您使用的是不同的JavaScript object initializer),但FWIW JSON没有日期所有。您需要将其作为字符串或数字(例如,自The Epoch以来的毫秒数)等提供。
仅供参考,如果您在JavaScript对象上调用encodeURI
,就像初始化程序无效一样,您会得到:"%5Bobject%20Object%5D"
这不是您想要的。< / p>
如果要获取JavaScript对象并将其转换为JSON字符串,可以使用JSON.stringify
来执行此操作。如果你把它放到DOM属性中,就不需要对它进行URI编码。所以:
$('#uploadinput').attr('src', JSON.stringify(data));
但是,JSON没有日期,所以你必须在上述工作之前处理它。