J'essaie de faire quelque chose de très basique dans mon application Ionic4 - Post Data sur une interface ASP.NET Web API 2. La demande est réussie, mais il n'y a pas de données reçues sur le serveur. sur le serveur (c #): p> the < Code> Asset Code> L'objet sur le serveur est instancié, mais ne contient pas de valeurs envoyées par le client. P> En outre, supprimer / modifier les en-têtes envoyés Résultats dans la demande échouant complètement. P> EDIT: strong>
Supprimer l'en-tête entraîne une erreur 404 et la présente dans la console: P> accès à xmlhttprequest à ' http: // serveur ' de l'origine ' http: // localhost '
a été bloqué par la stratégie CORS: la réponse à la demande de préforme ne
Vérification du contrôle d'accès passe: il n'a pas d'état HTTP OK. P>
BlockQuote> Modification de l'en-tête en "Multipart / Form-Data" Résultats dans l'erreur 415 - Type de support non pris en charge P> Edit # 2: strong>
Cela fonctionne avec Postman et httpbot (iPhone), juste pas de mon application ionique p> p>
3 Réponses :
Comme indiqué dans l'erreur lorsque vous supprimez le Code> Type de contenu Code> En-tête: P>
accès à xmlhttprequest à ' http: // serveur ' de l'origine ' http: // localhost 'a été bloqué par la stratégie CORS P> blockQuote>
Comment le type de contenu affecte-t-il Cors?
J'ai commuté à l'aide du plugin http natif ionique comme solution. Ce qui n'est pas la fin de mes problèmes, cependant. Voir cette Question pour plus d'informations. P>
Honnêtement, je vous recommanderais de continuer à essayer d'utiliser le client HTTP angulaire. C'est plus rapide et plus puissant. Une fois que vous avez compris le problème, que ce soit sur le serveur ou le côté du client, tout fonctionnera plus fluide.
@Stephenromero J'ai lu que le plugin natif empêche le problème du navigateur Cors et j'ai vu cela comme un avantage dans mon cas. Existe-t-il une bonne comparaison pour les caractéristiques, la vitesse, etc. pour les deux plugins qui pourraient m'aider à choisir?
De mon expérience de la recherche, le plugin angulaire est plus efficace. Si vous envisagez d'utiliser Angular avec votre application ionique, il sera plus bénéfique à long terme. J'utilise PHP comme ton backend et j'ai eu des problèmes avec les en-têtes Cors au début, mais une fois que j'ai eu la question résolue, tout a fonctionné magnifiquement. Il y a aussi beaucoup plus de fonctionnalités avec HTTP angulaire que ionic.
mise à jour: j'ai finalement corrigé le problème en permettant à CORS. J'avais activé Cors dans web.config CODE> et devrait-il suffire, mais il s'avère que je devais réellement installer le
Microsoft.aspnet.webapi.cors Code> Package et ajoutez le < Code> [EnableCorS] code> Attribut à Mes méthodes de poste. P>
Sans aucun autre détail supplémentaire sur la configuration de votre webapi .NET webapi. Assurez-vous à peu près que votre API attend un type
JSON code> Type de contenu non
X-www-form-urlencoded code>. Vous pouvez essayer d'ajouter
[debonne] code> attribut à votre paramètre code> AccessData code>.
@penleychan Je soupçonne aussi que, mais changer / supprimer cet en-tête rend la demande échouer - cela n'atteint même pas le serveur.
Pouvez-vous nous montrer l'erreur qui apparaît lorsque vous essayez de poster sans l'en-tête de ce type de contenu?
@favdev - édité ma question avec plus d'informations
Vous accédez à un serveur distant?
@favdev non, le serveur est mon ordinateur