jQuery: Как остановить функцию Ajax, выходящую из строки JSON, привыкшей к данным POST

За прошлые три года я столкнулся с очень мало в способе встроить Геккона в Дельфи. Одна библиотека, которая обнаружилась довольно поздно в игре (для меня) была проект GeckoSDK на SourceForge. Я сделал большую работу рано над попыткой заставить встроенного Геккона работать правильно в Дельфи. Наша первая попытка механизма визуализации Геккона базировалась, внутренний "браузер" был создан с помощью Дельфи и Геккона 1.8. Мы с тех пор шли дальше, и наш браузер теперь приложение XULRunne r. У меня есть части наложения кода вокруг на моем жестком диске все же от той ранней попытки, которую я еще не удалил.

, Когда Mozilla выпускает Геккона 2.0, я думаю, что станет намного легче встроить в Дельфи. Система объекта XPCOM у Геккона делает очень трудным встроить, потому что большинство все возвращает NS_RESULT. Строки особенно были тверды.

редактирование: Я просто просмотрел свои старые закладки (почти, все из которых мертвы) и искал новый URL для японского браузера "рогалика" языка на основе Геккона и нашел его здесь,

http://github.com/plus7/bagel/tree/master/Legacy .

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

12
задан Community 23 May 2017 в 12:18
поделиться

2 ответа

After scouring Google and the jQuery site, i've come to the personal conclusion that the $.load function will convert any variable passed to it as a querystring (As my original problem above outlined). If you wish to pass a JSON string through it, it has to be manually typed.

To get around this, I used the low level $.ajax function instead. An advantage of using this method meant I could also send POST data using the standard .serialize() function rather than having to convert my form data into JSON.

My final code:

var formData = $('#form').serialize();

$.ajax({
     type: "POST",
     url: "ajax.php",
     data: 'Query01=01&Query02=02',
     dataType: 'json',
     success: function(data){
          if (data==1){
               $.ajax({
                    type: "POST",
                    url: "ajax.php",
                    data: formData,
                    success: function(html){
                         $("#wrap").replaceWith(html);
                    }   
               });
          }
     }
});

If anyone else has a solution, please comment.

1
ответ дан 2 December 2019 в 21:23
поделиться

Это поведение по умолчанию для $. Ajax () . Вы можете изменить его, установив для параметра processData значение false . См. $. Ajax () параметры .

 объект данных, строка

Данные для отправки на сервер. это преобразован в строку запроса, если нет уже строка. Он добавлен к url для GET-запросов. См. ProcessData возможность предотвратить это автоматическое обработка. Объект должен быть ключ / значение пары. Если значение является массивом, jQuery сериализует несколько значений с одинаковыми ключ ie {foo: ["bar1", "bar2"]} становится '& foo = bar1 & foo = bar2'.

и

 processData Boolean По умолчанию: true

По умолчанию данные передаются в данные вариант как объект (технически, все, кроме строки) будет обработано и преобразовано в запрос строка, подходящая по умолчанию Тип содержимого "application / x-www-form-urlencoded". Если вы хотите отправить DOMDocuments, или другие необработанные данные, установите это для параметра значение false.

11
ответ дан 2 December 2019 в 21:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: