jQuery: получить JSON через ajax, но с POST вместо GET - PullRequest
6 голосов
/ 25 сентября 2011

Я использую $ .ajax jQuery для отправки запроса на сторонний сервер, используя JSONP.Я указываю метод как POST, но он все равно использует GET:

    $.ajax({
        type: "POST",
        dataType: "json",
        url: other_server + "/run?callback=?",
        data: {
            code: $(code).val()
        },
        success: function(obj) {
            var res = obj.results;
            $(results).val(res);
        }
    });

Глядя в исходный код jQuery, я вижу эти две строки, которые, похоже, вынуждают все междоменные запросы к GET, но я непонять, почему так должно быть:

if ( s.crossDomain ) {
    s.type = "GET";

Можно ли сделать это с помощью POST вместо GET?Почему jQuery заставляет использовать GET?

1 Ответ

5 голосов
/ 25 сентября 2011

JSON-P работает, вставляя элемент <script> в документ, следовательно, он может только делать запросы GET.

Если вы хотите сделать POST-запрос к удаленному серверу, вам нужно посмотреть наВместо XHR и установите разрешения CORS .Обратите внимание, что имеет ограниченную поддержку браузера .

Либо сохраните ваши запросы в том же источнике (и ваш сервер отправит запрос на удаленный сервер).

...