Je interrogee un service Web de repos qui utilise des en-têtes HTTP personnalisés pour l'authentification.
Si j'effectue un poste sans les en-têtes, je reçois l'erreur attendue, mais lorsque j'ajoute les en-têtes, je reçois une erreur 404 au lieu de Ce que j'ai réellement besoin. p>
Ceci est mon code P>
$.ajax({ type: 'POST', url: 'http://server.com/service', beforeSend: function (xhr) { xhr.setRequestHeader('CUSTOM-HEADER-KEY', 'CUSTOM-HEADER-VALUE') }, success: function(data) { alert('success.'); } });
4 Réponses :
Ceci peut vous aider ou ne pas vous aider, mais je pense que vous pouvez ajouter les en-têtes de l'option de données:
$.ajax({ type: 'POST', data: put the results of your header request here, url: 'http://server.com/service', beforeSend: function (xhr) { xhr.setRequestHeader('CUSTOM-HEADER-KEY', 'CUSTOM-HEADER-VALUE') }, success: function(data) { alert('success.'); } });
Ceci est une demande de domaine croisée. Donc, vous ne pouvez pas le résoudre du côté du navigateur. Vous aurez peut-être besoin d'un proxy côté serveur pour effectuer la poste sur un domaine différent. P>
Tous les en-têtes personnalisés sur Cross Domain Appels déclenchent une demande de pré-vol une appel d'options. Vous devez utiliser une vérification de sécurité de dérivation des appels d'options ou de gérer les demandes séparément car les en-têtes personnalisés ne sont pas passés avec la demande d'options. Il n'y a pas non plus de mal à permettre la demande de pré-vol, car aucune donnée réelle n'est transmise au navigateur avec cet appel. Fondamentalement, le navigateur demande au serveur s'il est autorisé à faire cet appel avant de le faire réellement. Vous devrez peut-être vérifier également vos en-têtes de contrôle d'accès. Toutes ces modifications sont sur le côté serveur BTW afin que vous ayez besoin d'avoir le contrôle total sur le Webservice. P>
Même comprendre que l'envoi des en-têtes des clients sur les options n'a aucun sens d'une perspective de Cors ... Savez-vous si vous y êtes un piratage ou une solution de contournement pour ajouter des en-têtes de clients sur la demande d'options?
J'ai dit que vos en-têtes personnalisés ne sont pas envoyés avec la demande d'options. C'est fondamentalement une simple demande demandant si elle est autorisée à faire poster, etc. sur ce chemin. Et non, il n'y a pas de solution de contournement pour ajouter des enpleurs personnalisés aux appels d'options, les navigateurs ne permettent pas de permettre cette mesure de sécurité. Vous pouvez toujours utiliser JSONP pour aller autour des limitations CORS, mais vous devrez utiliser des paramètres de requête pour transmettre toutes les données sur le serveur, car il s'agit simplement d'un
Envoi d'envoi de ce
POST CODE> DEMANDE AFFAIRER DES SERVERS?
Blender est sur la bonne voie. C'est probablement une violation de la boîte à sable. Accédez au service via JSONP ou utilisez votre serveur comme proxy au service.
"Et les mêmes en-têtes lors de l'exécution de la poste avec une affiche". Qu'est-ce que "Affiche"?