javascript - Pourquoi $.post() dans jquery ne peut-il pas soumettre des données sur plusieurs domaines?
習慣沉默2017-05-16 13:36:50
0
3
634
Comme le titre, pourquoi la méthode ajax encapsulée dans jquery peut-elle utiliser jsonp pour soumettre des données dans la méthode get, mais utiliser directement la méthode post pour soumettre des données entre domaines ?
Les propres fonctions de jquery ne sont pas prises en charge, mais vous pouvez implémenter des publications inter-domaines basées sur jquery.
jquery lui-même ne prend en charge que jsonp inter-domaines, mais le principe de jsonp le limite à ne prendre en charge que get.
Si vous souhaitez implémenter un cross-domain natif jquery, ajoutez Access-Control-Allow-Origin dans l'en-tête de votre adresse de requête et définissez la valeur sur le nom de domaine (ou *) qui appelle l'API
Le cross-domain est généralement divisé en deux types :
jsonp cross-domain. jsonp utilise à l'origine la méthode get file pour contourner les vérifications inter-domaines, il ne prend donc pas en charge la publication. Il existe également des bibliothèques tierces qui utilisent get pour simuler les demandes de publication.
COR cross-domain. COR cross-domain doit modifier la réponse Access-Control-Allow-Origin côté serveur. Généralement, le client enverra deux requêtes de publication. La première fois est une option une fois que le serveur a répondu avec l'autorisation, la deuxième fois envoie une vraie requête avec des données. Si les conditions du répondant le permettent, essayez d'utiliser la deuxième méthode inter-domaines, qui peut directement prendre en charge la publication.
Si la configuration du serveur ne peut pas être modifiée, le répondant peut rechercher une bibliothèque tierce pour voir si jsonp peut être utilisé pour simuler des demandes de publication.
Notez que ce n'est pas que jquery ne le prend pas en charge, mais que le navigateur intercepte la réponse et vous donne une erreur lorsqu'il n'autorise pas les en-têtes inter-domaines. Une fois que jquery aura reçu cette erreur, il vous signalera une erreur inter-domaines. Vous pouvez récupérer un paquet et y jeter un oeil (attention à ne pas utiliser le f12 du navigateur pour capturer le paquet). En fait, la réponse du serveur est là.
Les propres fonctions de jquery ne sont pas prises en charge, mais vous pouvez implémenter des publications inter-domaines basées sur jquery.
jquery lui-même ne prend en charge que jsonp inter-domaines, mais le principe de jsonp le limite à ne prendre en charge que get.
Si vous souhaitez implémenter un cross-domain natif jquery, ajoutez Access-Control-Allow-Origin dans l'en-tête de votre adresse de requête et définissez la valeur sur le nom de domaine (ou *) qui appelle l'API
Le cross-domain est généralement divisé en deux types :
jsonp cross-domain. jsonp utilise à l'origine la méthode get file pour contourner les vérifications inter-domaines, il ne prend donc pas en charge la publication. Il existe également des bibliothèques tierces qui utilisent get pour simuler les demandes de publication.
COR cross-domain. COR cross-domain doit modifier la réponse Access-Control-Allow-Origin côté serveur. Généralement, le client enverra deux requêtes de publication. La première fois est une option une fois que le serveur a répondu avec l'autorisation, la deuxième fois envoie une vraie requête avec des données.
Si les conditions du répondant le permettent, essayez d'utiliser la deuxième méthode inter-domaines, qui peut directement prendre en charge la publication.
Si la configuration du serveur ne peut pas être modifiée, le répondant peut rechercher une bibliothèque tierce pour voir si jsonp peut être utilisé pour simuler des demandes de publication.
Notez que ce n'est pas que jquery ne le prend pas en charge, mais que le navigateur intercepte la réponse et vous donne une erreur lorsqu'il n'autorise pas les en-têtes inter-domaines. Une fois que jquery aura reçu cette erreur, il vous signalera une erreur inter-domaines.
Vous pouvez récupérer un paquet et y jeter un oeil (attention à ne pas utiliser le f12 du navigateur pour capturer le paquet). En fait, la réponse du serveur est là.