Как избежать jquery ajax для преобразования одинарных кавычек в экранированные? - PullRequest
0 голосов
/ 27 апреля 2020

Сначала я отправляю весь объект json, полный данных. Ниже приведен только пример строковых данных, которые не преобразуются должным образом.

, начиная с этой строки:

"Verticale dall'alto verso il basso, Verticale dal basso verso l'alto"

При отправке с jquery ajax (json), это выглядит так:

"Verticale dall\'alto verso il basso, Verticale dal basso verso l\'alto"

Это код отправки:

  $.ajax({
    url: ajax_url
    ,type: 'post'
    ,dataType:'JSON'
    ,data: data

Очевидно, я не хочу получать экранированные одинарные кавычки. В моей базе данных я хочу написать «», а не «\».

Как?

Ответы [ 2 ]

1 голос
/ 27 апреля 2020

Вы можете быть умным и использовать. Заменить все кавычки на апостроф

var str = "she's good";
var res = str.replace(/'/g, "’");

ИЛИ

Вы можете попробовать var json = encodeURIComponent(string)

0 голосов
/ 28 апреля 2020

Благодаря @Jintor решение было следующим:

url: ajax_url
,type: 'post'
,dataType:'JSON'
,data: JSON.parse(JSON.stringify(data).replace(/'/g, "’"))

В моей программе данные поступают ко мне из других источников в простом формате json, затем я должен добавить некоторые другие поля в и, наконец, передать его на $.ajax. В этот момент я делаю строковое преобразование исходного объекта, заменяю все прямые кавычки, затем снова разбираю его на JSON и передаю на ajax.

Вероятно, мне следует также позаботиться двойных кавычек, но в любом случае, это мое текущее решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...