jQuery POST请求实际上作为GET发送

时间:2011-10-11 12:21:10

标签: jquery ajax post get

我正在尝试使用以下代码发送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 个答案:

答案 0 :(得分:20)

JSONP只是一个GET,因此dataType: 'jsonp',将永远是一个获取

想想JSONP是这样的:

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

由于这是jsonp如何绕过跨域,它只能是一个获取请求。