我遇到了java脚本端的问题
1)
var text='{"type": "comTocomp","data":[{ "1" : "Key Parameters" , "2" : "Steel - Sponge/ Pig Iron"},
{ "1" : "No of Companies" , "2" : "6,6 % " }]}';
这是我的var文本,我想将其发送到服务器端以生成excel表 并且浏览器应该弹出提示以保存我正在做的文件
2)
var url="/XXX/YYYY/genrateSheet"; // URL OF CONTROLLER
var encode=url+ "?data="+text; // URL + PARAMETER+ TEXT CONTENT
var resUri=encodeURIComponent(encode); // TRIED TO ENCODE BUT DOESN'T WORK
**window.location.replace(resUri);** // CALLING TO CONTROLLER TO PROMPT POPUP
问题与 var text 一样,如果它包含某些特殊字符,例如%,。,则浏览器会显示
The character encoding of the plain text document was not declared
但是这个特殊角色对我来说都不行。
我有很多Google但希望使用 window.location.replace(resUri)
编码网址任何帮助都会对我有所帮助。
先谢谢
答案 0 :(得分:2)
您需要编码查询字符串的值而不是查询字符串本身:
var url="/XXX/YYYY/genrateSheet"; // URL OF CONTROLLER
var resUri = url + "?data=" + encodeURIComponent(text); // querystring
window.location.replace(resUri);
说,text
很长,所以你应该考虑将post
添加到新页面,而不是将其传递给URL。使用jquery执行此操作的一种方法是创建并提交包含所需数据的隐藏表单:
$('button').on('click', function() {
var text='{"type": "comTocomp","data":[{ "1" : "Key Parameters" , "2" : "Steel - Sponge/ Pig Iron"}, { "1" : "No of Companies" , "2" : "6,6 % " }]}';
// create a hidden form
var theForm = $('<form action="/XXX/YYYY/genrateSheet" method="post"/>').hide();
// create a textarea named data and set your json inside it
var theTextarea = $('<textarea name="data"/>').val(text); // data in your case
// add the textarea to the form
theForm.append(theTextarea);
// submit the form
theForm.submit();
});