jQuery POST request actually sends as GET

2019-06-22 15:15发布

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.)

1条回答
劳资没心,怎么记你
2楼-- · 2019-06-22 15:54

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.

查看更多
登录 后发表回答