IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Consomation d'un service WCF depuis JQuery


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 43
    Points : 27
    Points
    27
    Par défaut Consomation d'un service WCF depuis JQuery
    Bonjour tout le monde,

    J'ai actuellement un petit soucis avec un service WCF.

    Je tente d'accéder à ce service WCF via un portail en ASP.Net, via JQuery.

    Le but est de récupérer une liste de communes, en tapant un code postal, un département, un nom de communes, etc... (principe de l'autocomplete dans le genre de google maps).

    Je parvient à accéder à ce service en local, mais dés que je passe par internet, le service est inaccessible.

    Voici mon erreur:
    XMLHttpRequest cannot load http://XXXXXXX/AutoComplete.svc/GetP...2&idLanguage=1. Origin http://YYYYYYYYY is not allowed by Access-Control-Allow-Origin.
    Voici l'appel du service:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    $().ready(function () {
    			$("#tbCountry").autocomplete({
    				source: function (request, response) {
    					var country = $("#tbCountry").val().replace("'", " ");
    					$.ajax({
    						url: "http://XXXXXXX/AutoComplete.svc/GetPostalCode",
    						async: true,
    						dataType: "json",
    						data: "text=" + country + "&clientId=" + idClient + "&idLanguage=" + idLanguage,
    						type: "GET",
    						contentType: "application/json; charset=utf-8",
    						success: function (data) {
    							response($.map(data.d, function (item) {
    								return {
    									value: item
    								}
    							}))
    						},
    						error: function (XMLHttpRequest, textStatus, errorThrown) {
     
    						}
    					});
    				}
    			});
    		});
    Je précise que le service WCF n'est pas situé à la racine du portail, mais sur une autre application IIS, et donc une autre URL.


    Quelqu'un aurait déjà eu ce problème?

    Merci d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    J'ai eu le même problème sur chrome jamais réussi à le résoudre et c'était qu'en local le problème en prod ça marchait bien.
    Sur quel navigateur as-tu eu ce problème ?

  3. #3
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    "Access-Control-Allow-Origin" est une entête HTTP. Sur le serveur, il faut rajouter ton domaine à la liste des domaines autorisés pour les requêtes cross domain (ou mettre une asterisque si tous les domaines sont autorisés).

    Exemple à placer dans le global.asax du web service :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
    }
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 43
    Points : 27
    Points
    27
    Par défaut
    J'ai utilisé la méthode de DotNetMatt et ca semble fonctionner.
    Merci à vous deux.

    Mais j'ai maintenant une nouvelle erreur:
    Status Code:405 Method Not Allowed
    Merci

Discussions similaires

  1. [Débutant] Consomation d'un service WCF
    Par Ilaoet dans le forum Services Web
    Réponses: 3
    Dernier message: 04/07/2013, 11h30
  2. Réponses: 0
    Dernier message: 20/07/2010, 17h03
  3. Problème d'endpoint pour la consomation d'un service WCF
    Par johnjohn26 dans le forum Windows Communication Foundation
    Réponses: 6
    Dernier message: 11/05/2010, 11h15
  4. Désactiver le cache sur une méthode d'un service WCF appelée depuis une page ASPX
    Par zar dans le forum Windows Communication Foundation
    Réponses: 0
    Dernier message: 18/03/2009, 09h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo