JSONP и очень длинный ответ с экранированными символами - PullRequest
0 голосов
/ 08 ноября 2011

У меня следующая проблема: я отправляю запрос AJAX в службу, которая возвращает HTML-код. В этом коде есть символы Юникода, которые будут экранированы с помощью обычного \ u ....

Проблема в том, что этот ответ очень длинный и jQuery разделяет эти функции jsonp на несколько функций. Это не проблема, кроме того факта, что эти экранированные символы будут разделены внутри, как jsonp463827("...blabhalbha\ud0");jsonp546114("0x8blablabla..."); Затем он выдает ошибку, в которой говорится, что Hexcode ожидается, потому что он не может разделить эти экранированные символы.

Есть ли какое-нибудь решение, чтобы предотвратить это?

1 Ответ

1 голос
/ 08 ноября 2011

Что именно передается обратно?Пример адреса?

Я не думаю, что jQuery выполняет разделение здесь.По своей природе JSONP должен возвращать блок операторов JavaScript для непосредственного выполнения в теге <script>.Клиентская сторона не может ухватиться за этот контент, чтобы разделить или обработать его иным способом, потому что это будет дыра для межсайтового скриптинга, сама проблема JSONP предназначена для обхода.

Я думаю, вы 'Возможно, мне придется посмотреть на эту услугу.Я не уверен, почему он будет пытаться разделить ответ на несколько вызовов функций, поскольку нет ограничения на длину передаваемой строки. Предел, который вы могли бы достигнуть, является пределом стека синтаксического анализатора скриптов Firefox.(см. ошибка 420869 ), но это относится ко всему возвращенному блоку сценария, поэтому разбиение на несколько вызовов функций не поможет.

...