JQuery .get () передает только первые два параметра данных в URL - PullRequest
8 голосов
/ 02 мая 2010

У меня есть вызов $ .get () на страницу PHP, которая принимает 4 параметра GET. По некоторым причинам, несмотря на то, что $ .get () вызывает все 4, он пропускает только первые два. Когда я смотрю на консоль разработчика в chrome, она показывает URL-адрес, который вызывается, и передает только действие и имя_базы. Вот код:

$.get('util/util.php', { action: 'start', dbname: db, url: starturl, crawldepth: depth }, function(data) {
        if (data == 'true') {
            status = 1;
            $('#0').append(starturl + "<ul></ul>");
            $('#gobutton').hide();
            $('#loading').show("slow");
            while(status == 1) {
                setTimeout("update()",10000);

            }
        } else {
            show_error("Form data incomplete!");
        }
    });

и вот URL, который я вижу в консоли разработчика:

http://localhost/pci/util/util.php?action=start&dbname=1hkxorr9ve1kuap2.db

** РЕДАКТИРОВАТЬ ** Мне сообщили, что мне нужно закодировать URL, который я пытаюсь передать через заголовок. Как бы я пошел о кодировании его в javascript и декодировании в php?

Ответы [ 2 ]

3 голосов
/ 02 мая 2010

Вы уверены, что определены переменные starturl и depth? Для проверки достаточно простого alert() перед $ .get ().

Что касается вашего редактирования, вы можете кодировать строки в JavaScript с помощью функции encodeURIComponent. И декодировать его снова в PHP с помощью urldecode. Они оба принимают один строковый аргумент.

0 голосов
/ 02 мая 2010

Возможно, вам нужно будет проверить, правильно ли указаны ваши входные строки. Внутренне jQuery будет строить строку параметров из карты параметров, которую вы указали, используя метод param(). Этот метод создаст объект из ключей и значений, который, вероятно, не будет разбираться, если вы неверно процитировали свои ключи и значения.

@ Феликс Клинг: jQuery автоматически кодирует ключи и значения строки параметра с encodeURIComponent.

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