ЦЕЛЬ И ФОН

Сравните два образца текста. Эти образцы текста являются описаниями продуктов. Образец 1 извлекается из текстовой области в форме. Образец 1 отправляется через AJAX в другой файл для сравнения с образцом 2, который извлекается из базы данных.

Я пытаюсь отправить как объект JSON, потому что предположил, что это позволит мне обойти отправку данных, закодированных в виде URL, в виде простого запроса POST / GET.

ВОПРОС

Когда я отправляю образец 1 через AJAX в объекте JSON, он URL-кодируется с помощью для пробелов и т. Д. Мне нужно, чтобы текст отправлялся «как есть», чтобы его можно было сравнить. URL-декодирование не будет работать, так как могут действительно присутствовать и другие символы, которые являются частью истинного примера 1.

ВОПРОС

Как отправить образец 1 без URL-кодирования данных?

КОД

  // we need the product id and description var pid = $("input[name='pid']").val(); var descr = $("textarea[name='descr']").val(); // put in a json object so we can see the real data var $obj = { "pid": pid, "descr": descr // Sample 1 } // make the call and return the promise return $.ajax({ type: 'POST', url: 'request_file.php', dataType: "json", data: $obj }); 

Из документации jquery для API $.ajax ,

 contentType (default: 'application/x-www-form-urlencoded; charset=UTF-8') 

Таким образом, по умолчанию он будет отправлен только в кодированном виде. Обновите вызов AJAX следующим образом, установив правильный параметр.

  return $.ajax({ type: 'POST', contentType :'application/json', url: 'request_file.php', dataType: "json", data: $obj }); 

Параметр contentType обычно принимает в качестве значения тип MIME. Всегда необходимо установить правильный тип MIME для варианта использования при отправке запроса, а также использовать тот же тип MIME для чтения данных из запроса в серверной части.

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