Одиночная кавычка в параметре URL не заменяется и не кодируется - PullRequest
0 голосов
/ 10 апреля 2019

В моем коде я пытаюсь получить значение, которое устанавливается с помощью modelAttribute в контроллере Spring, а затем передать его в функцию Javascript и установить значение в качестве параметра в URL.

Модель атрибута с контроллера:

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?

1 Ответ

0 голосов
/ 10 апреля 2019

изменение

var message = "${appName}".replace(/'/g, "%27");

до

var message = `${appName}`.replace(/'/g, "%27");
...