2013-05-22 3 views
0

jsonp http méthodes GET en plus (POST, PUT, OPTIONS, SUPPRIMER)

utilisant jquery méthode intégrée .ajax $ ressemble à ceci"jquery.jsonp.js" GET fonctionne. Qu'en est-il des POST PUT DELETE OPTIONS?

$(document).ready(function() { 
    $.ajax({ 
    type: "GET", 
    url: "http://myurl.com/webservice&callback=?", 
    ... 
}); 

veux seulement attirer l'attention sur la ligne type: "GET", Avec $ .ajax effectuer une PUT http serait simplement changer type: "PUT",

Cet exemple de code provient de JSON parsing from cross domain using jquery ajax

Ne pas utiliser .ajax $

En utilisant le jquery.jsonp de google code https://github.com/jaubourg/jquery-jsonp

Voici un exemple d'utilisation jquery.jsonp.js avec la méthode GET

$.jsonp({ 
    cache: false, 
    url: 'http://www.mydomain.com/logicalurl/2/', 
    callbackParameter: 'callback', 
    timeout: 10000, 
    success: function(json, textStatus, xOptions) { 
     myglob = json; 
     MyModulePatternObject.initNew(json); 
    }, 
    error: function (xOptions, textStatus) { 
    console.log("fail"); 
    } 
}); 

Cela fonctionne parfaitement. Comment faire une demande GET jsonp n'est pas ma question.

Dans $ .jsonp, vous souhaitez effectuer les autres méthodes http: PUT POST SUPPRIMER OPTIONS ...? Est-ce que $ .jsonp supporte le type="PUT",?

Il n'est pas mentionné du tout dans les docs: API.md et TipsAndTricks.md Ni dans le code source.

MISE À JOUR

@ohgodwhy Il y a un hack (iframes/Proxy) pour obtenir POST 2 domaines transversaux de travail. Using PUT/POST/DELETE with JSONP and jQuery

@thefrontender article lié suggère à la recherche dans "Partage des ressources (CORS) Cross-Origin"

soutien CORS par navigateur http://caniuse.com/cors

Même article dit aussi: « Vous pouvez encoder JSON comme Paramètre d'URL, mais honte à vous même pour avoir pensé ça. " Dans toute l'histoire, la honte n'a jamais arrêté personne? Simple, paresseux, et dans des cas limités obtient le travail.

Thx 4 ... aider everyones

+0

* "Est-ce que $ .jsonp en charge le type =" PUT "?" * Pas. –

+0

Merci à tous. Est-ce que json-p est utilisé du tout? – faulkmore

+0

Oui, JSONP est encore largement utilisé. –

Répondre

2

JSON-P fonctionne en injectant une balise de script dans votre document: il n'est pas une demande XHR traditionnelle.

Ainsi, vous ne pouvez généralement exécuter que des requêtes GET. Vous ne pouvez PAS effectuer de demandes PUT.

Plus de détails dans cette rédaction: http://johnnywey.wordpress.com/2012/05/20/jsonp-how-does-it-work/

+0

En fait, c'est faux. C'est possible, mais pas le plus facile. [S'il vous plaît voir ce poste détaillé ici, c'est incroyable] (http://stackoverflow.com/questions/5345493/using-put-post-delete-with-jsonp-and-jquery). – Ohgodwhy

+1

@Ohgodwhy C'est un hack très intelligent ...mais c'est un hack, n'est pas construit dans la bibliothèque utilisée et ne fonctionne pas pour PUT (dont la question spécifiquement posée) – thefrontender

+0

J'irais jusqu'à dire que la méthode à la poste liée n'utilise pas JSONP à all, ce qui ne permet pas vraiment de faire valoir que jsonp peut être fait autrement que GET (sauf si vous considérez une requête de même origine utilisant xhr qui utilise des réponses jsonp-style une vraie requête jsonp). C'est une astuce intelligente, mais ce n'est pas du jsonp. C'est juste une autre façon de contourner la politique de la même origine. Cette réponse est correcte. –

Questions connexes