我正在尝试使用以下代码发送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所以这不是问题。)
答案 0 :(得分:20)
JSONP只是一个GET,因此dataType: 'jsonp',
将永远是一个获取
想想JSONP是这样的:
<script src="http://url.com/?query=string"></script>
由于这是jsonp如何绕过跨域,它只能是一个获取请求。