2011-10-11 17 views
5

Próbuję użyć następującego kodu, aby wysłać żądanie POST:żądanie POST jQuery faktycznie wysyła GET

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

Jednak ta zawsze przechodzi jako żądanie GET, a nie żądanie POST a serwer API konsekwentnie go odrzuca. Dlaczego jQuery nalega, aby było to żądanie GET?

(Jest to celowo cross-domain, ale to jsonp więc to nie jest problem.)

Odpowiedz

20

JSONP jest dostać tylko tak dataType: 'jsonp', zawsze będzie dostać

Pomyśl o jsonp tak:

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

Ponieważ w ten sposób jsonp radzi sobie z wieloma domenami, może to być tylko żądanie pobrania.

Powiązane problemy