5

I'm trying to use the following code to send a POST request:

$.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!');
    }
});

However, this always goes through as a GET request, not a POST request, and the API server consequently rejects it. Why is jQuery insisting on making this a GET request?

(This is intentionally cross-domain, but it's JSONP so that's not a problem.)

futuraprime
  • 5,468
  • 7
  • 38
  • 58

1 Answers1

20

JSONP is a GET only so dataType: 'jsonp', will always be a get

Think of JSONP like this:

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

Since that's how jsonp gets around cross-domain, it can only be a get request.

Joe
  • 80,724
  • 18
  • 127
  • 145