jQuery игнорирует метод HTTP-запроса и добавляет странные параметры URL - PullRequest
0 голосов
/ 04 июля 2018

У меня есть веб-сервис, который ожидает POST-запросы, содержащие строку JSON в теле. Я пытаюсь использовать этот веб-сервис с использованием jQuery, но у меня есть две проблемы:

1) jQuery, похоже, всегда использует метод GET, независимо от того, что я делаю;

2) Кажется, jQuery добавляет странные вещи в URL.

Соответствующая часть моего кода:

var WEB_SERVICE_URL = 'http://localhost/XXXX/';

// ...

$.post({
    url: WEB_SERVICE_URL + 'GetConfigLabels/',
    contentType: 'application/json; charset=utf-8',
    dataType: 'jsonp',
    data: JSON.stringify(data),
    processData: false,
    success: function(response) {
        // Whatever
    },
    error: function(xhr, message) {
        // Whatever
    }
});

Инструменты разработчика браузера (Firefox Quantum 60.0.2) показывают мне странный URL:

http://localhost/XXXX/GetConfigLabels/?callback=jQuery331012146934861340841_1530707758905&{}&_=1530707758906

Хотя ожидалось следующее:

http://localhost/XXXX/GetConfigLabels/

Также файл HTML открывается как файл (используя file: ///) через файловую систему, поэтому используется JSONP для междоменного домена.

Мне не удалось найти существующие вопросы, связанные с этой проблемой. Что может быть причиной этого ? Спасибо!

1 Ответ

0 голосов
/ 04 июля 2018

Пожалуйста, обратитесь к dataType : json в http://api.jquery.com/jquery.ajax/:

"json": оценивает ответ как JSON и возвращает JavaScript объект. Междоменные запросы «json» с заполнителем обратного вызова, например ? callback = ?, выполняются с использованием JSONP, если только запрос включает в себя параметры jsonp: false. Данные JSON анализируются в строгой манере; любой искаженный JSON отклонен и ошибка разбора брошен Начиная с jQuery 1.9, пустой ответ также отклоняется; Сервер должен вернуть ответ null или {}. (См. Json.org для получения дополнительной информации о правильном формате JSON

переопределение случайного имени обратного вызова с использованием jsonpCallback :

jsonpCallback Тип: String или Function () Укажите функцию обратного вызова имя для запроса JSONP. Это значение будет использоваться вместо случайное имя автоматически генерируется jQuery. Предпочтительнее JQuery генерирует уникальное имя, так как это облегчит управление запросы и обеспечивают обратные вызовы и обработку ошибок. Вы можете захотеть укажите обратный вызов, если вы хотите включить лучшее кэширование браузера ПОЛУЧИТЬ запросы. Начиная с jQuery 1.5, вы также можете использовать функцию для этого установка, в этом случае значение jsonpCallback устанавливается на возврат значение этой функции.

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