JQuery POST запрос на самом деле отправляет как GET - PullRequest
5 голосов
/ 11 октября 2011

Я пытаюсь использовать следующий код для отправки запроса POST:

$.ajax({
    type: "post",
    url: 'http://api.com/'+apiUsername+'/'+apiBucket+'/elements/add',
    dataType: 'jsonp',
    contentType: "application/json",
    data: JSON.stringify({
        username: apiUsername,
        api_key: APIkey,
        elementPermalink: tURL
    }),
    success: function() {
        console.log('posted!');
    }
});

Однако, этот всегда проходит как запрос GET, а не как запрос POST, иследовательно, сервер API отклоняет его.Почему jQuery настаивает на том, чтобы сделать этот запрос GET?

(Это намеренно междоменный, но это JSONP, так что это не проблема.)

1 Ответ

20 голосов
/ 11 октября 2011

JSONP только GET, поэтому dataType: 'jsonp', всегда будет get

Думайте о JSONP так:

<script src="http://url.com/?query=string"></script>

Так как jsonp обходит междоменный домен, это может быть только запрос на получение.

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