0
votes

Httpclient angulaire - post succès, aucun paramètre envoyé

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. xxx

sur le serveur (c #): xxx

the < Code> Asset L'objet sur le serveur est instancié, mais ne contient pas de valeurs envoyées par le client.

En outre, supprimer / modifier les en-têtes envoyés Résultats dans la demande échouant complètement.

EDIT: Supprimer l'en-tête entraîne une erreur 404 et la présente dans la console:

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.

Modification de l'en-tête en "Multipart / Form-Data" Résultats dans l'erreur 415 - Type de support non pris en charge

Edit # 2: Cela fonctionne avec Postman et httpbot (iPhone), juste pas de mon application ionique


6 commentaires

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 Type de contenu non X-www-form-urlencoded . Vous pouvez essayer d'ajouter [debonne] attribut à votre paramètre AccessData .


@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


3 Réponses :


0
votes

Comme indiqué dans l'erreur lorsque vous supprimez le Type de contenu En-tête:

accès à xmlhttprequest à ' http: // serveur ' de l'origine ' http: // localhost 'a été bloqué par la stratégie CORS


1 commentaires

Comment le type de contenu affecte-t-il Cors?



0
votes

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.


3 commentaires

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.



0
votes

mise à jour: j'ai finalement corrigé le problème en permettant à CORS. J'avais activé Cors dans web.config et devrait-il suffire, mais il s'avère que je devais réellement installer le Microsoft.aspnet.webapi.cors Package et ajoutez le < Code> [EnableCorS] Attribut à Mes méthodes de poste.


0 commentaires