Для экранирования значений в запросе AJAX, Не пишите собственную реализацию escape или используйте escape () метод. (escape()
устарело), Вместо этого создайте объект JSON и используйте метод JSON.stringify
.
Для вашего случая это должно быть похоже на (пока игнорируем динамическое свойство) :
//Create Javascript object
var obj = { SectionName: UpdateText, EntityID: EntityID };
Позже в вашем ajax-запросе вы можете сделать:
data: JSON.stringify(obj),
Если вы хотите использовать динамические свойства с вашим объектом JSON, то для вашего конкретного случая вы можете создать объект в два этапа, например:
var obj = { EntityID: EntityID };
obj["str_" + sectionName] = UpdateText;
Эта практика избавит вас от ручного экранирования одинарных / двойных кавычек и других недопустимых символов. JSON.stringify
позаботится об этом.
(Я пришел сюда в поисках какой-то похожей проблемы, но не смог найти подходящее рабочее решение, поэтому в итоге выложил здесь)