在我的代码中,我试图获取在Spring控制器中使用modelAttribute设置的值,然后将其传递给Javascript函数,并将该值设置为URL中的参数。
控制器的modelAttribute:
model.addAttribute(“ appName”,appName); model.addAttribute(“ cloverAppType”,cloverAppType);
视图中的javascript:
<a data-toggle="tab" onclick="loadOrders()">Orders</a>
function loadOrders() {
var message = "${appName}".replace(/'/g, "%27");
var x = encodeURIComponent(message);
window.location = '/admin/business/${businessId}/order?cloverAppType=${cloverAppType}&appName='+x;
}
问题是当appName中包含'
时,它会破坏JavaScript并给出Uncaught SyntaxError: Unexpected identifier
和浏览器控制台上的Uncaught ReferenceError: loadOrders is not defined at HTMLAnchorElement.onclick
错误。
但是,如果我对值Poppo's Taqueria - Outpost
进行硬编码,它将被替换和编码。
如何避免这种情况,并将带有'
字符的appName值作为URL的参数传递?
答案 0 :(得分:0)
更改
var message = "${appName}".replace(/'/g, "%27");
到
var message = `${appName}`.replace(/'/g, "%27");