JQuery AJAX удаляет встроенный CSS из данных HTML - PullRequest
0 голосов
/ 15 октября 2011

Я пытаюсь передать данные HTML на сервер через AJAX. В конечном итоге я хочу сохранить полный код HTML, включая любые встроенные определения CSS, в базе данных. Я не хочу вносить какие-либо изменения в данные HTML, просто храните их как есть. Моя проблема в том, что когда я передаю данные HTML через AJAX, когда они достигают сервера, встроенный CSS удаляется, но не только, он неправильно удаляется, оставляя неверный HTML.

Вот пример того, что я пытаюсь сделать:

var the_html = {'html':'<p><span style="font-size:42px;"><span style="color:#f00;">
    Some text</span></span></p>'};

$.ajax({
    type: 'POST',
    url: 'ajax.php',
    data: the_html,
    success: function (data) {
        alert(data);
    }
});

Когда данные достигают сервера, они выглядят так:

<p><span>span style="color:#f00;">Some Text</span></span></p>

Мне кажется, что jQuery пытался удалить весь встроенный CSS, но облажался с первым тегом span, также удалив открывающую угловую скобку второго тега span. Я пытался экранировать данные перед отправкой через AJAX, но результаты были такими же. Кроме того, я использую синтаксис литерала объекта, потому что у меня намного больше данных для передачи, чем в примере, и я хочу, чтобы он был ассоциативным массивом, когда он попадает на сервер.

Я не хочу, чтобы встроенный CSS вообще отключался. Я хочу, чтобы вся разметка плюс любой CSS были отправлены на сервер в целости и сохранности. Любые идеи о том, как я могу сделать это?

1 Ответ

0 голосов
/ 23 сентября 2013

заменить стиль на style1 (или что-нибудь еще) на javascript / frontend и снова на стороне сервера замените его обратно из style1 в style

пример:

$. Ajax ({ url: base_url + '/ adminevent / dragDrop', данные: {pid: p_id, content: data.replace ('style', 'style1'), update: 'update'}, type: 'POST', success: function (res) {// alert (res) }});

На стороне сервера (его PHP для меня):

str_replace ( 'style1', 'стиль', $ содержание)

...