Вам нужно url-экранировать амперсанд. Использовать:
var wysiwyg_clean = wysiwyg.replace('&', '%26');
Как указывает Вольфрам, это прекрасно обрабатывается (наряду со всеми другими специальными символами) с помощью encodeURIComponent.
Ответ 4 · рейтинг 4 · Nadav S.
Ответ Рамиля Амра работает только для персонажа &. Если у вас есть другие специальные символы, вы должны использовать PHP htmlspecialchars()и JS encodeURIComponent().
Ты можешь написать:
var wysiwyg_clean = encodeURIComponent(wysiwyg);
И на стороне сервера:
htmlspecialchars($_POST['wysiwyg']);
Это гарантирует, что AJAX будет передавать данные, как и ожидалось, и что PHP (в случае, если вы вставляете данные в базу данных) гарантирует, что данные работают должным образом.
Ответ 5 · рейтинг 2 · deilkalb
Вы можете передавать свои аргументы с помощью этой функции encodeURIComponent, поэтому вам не нужно беспокоиться о передаче каких-либо специальных символов.
Предпочтительным способом является использование библиотеки JavaScript, такой как jQuery, и установка параметра данных в качестве объекта, а затем пусть jQuery выполняет кодирование, например: