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

Microsoft Azure Discussion :

impossible d'accéder à un blob avec jquery


Sujet :

Microsoft Azure

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut impossible d'accéder à un blob avec jquery
    Bonjour.
    Depuis quelques temps, je fais tourner mon site hébergé sur windows azure. J'utilise le plugin jquery "colorbox" pour me faire une gallerie d'images bien sympa. Seulement voilà, mes image sont stockées en blob sur mon serveur et ... ça plante lorsque je clique sur la miniature :/

    voici un extrait de mon erreur sous chrome :
    Origin http://mon_site.cloudapp.net is not allowed by Access-Control-Allow-Origin.
    comment puis-je autoriser mon conteneur de blob à accepter le chargement d'image en ajax ?

    Merci d'avance pour vos propositions.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    C'est pour des raisons de sécurité, normalement tu ne peux pas faire de requête AJAX vers un autre domaine. Cherche "jquery cross domain" sur Google, ça devrait t'indiquer la solution...

  3. #3
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    le défaut ne vient donc pas de Azure ?
    dans ce cas j'ai créé la fonction suivante :

    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
    26
    27
    28
    PictureBlob _pictureBlob = new PictureBlob();
     
    public Bitmap LoadPicture(string id, string containerName)
            {
                string url = string.Empty;
     
                switch (containerName)
                {
                    case "Avatar":
                        url = _pictureBlob.ContainerAvatar.GetBlobReference(id).Uri.ToString();
                    break;
     
                    case "Large":
                        url = _pictureBlob.ContainerLargeImage.GetBlobReference(id).Uri.ToString();
                    break;
     
                    case "Mini":
                        url = _pictureBlob.ContainerMiniImage.GetBlobReference(id).Uri.ToString();
                    break;
                }
     
                /*WebClient webclient = new WebClient();
                byte[] bmpBytes = webclient.DownloadData(url);
                Response.ContentType = "image/jpg";
                Response.BinaryWrite(bmpBytes);*/
     
                return new Bitmap(url);
            }
    voilà le lien de la galerie d'images :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a class="articlePictures" href="/Portfolio/LoadPicture/e95d5bb5-eff4-40b5-8484-ce9dd07cbc5e?containerName=Large"><img alt="" src="https://storagemaxime.blob.core.windows.net/mini/e95d5bb5-eff4-40b5-8484-ce9dd07cbc5e" /></a>
    lorsque je copie et colle le lien dans le navigateur, j'obtiens bien mon image.
    mais si je clique sur le lien et que c'est le plugin jquery qui charge l'image, j'obtiens pleins de caractères spéciaux...

    que dois-je faire ? :/

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par thor76160 Voir le message
    le défaut ne vient donc pas de Azure ?
    A priori non, ce serait pareil avec n'importe quel site autre que celui où ta page est hébergée.

    Citation Envoyé par thor76160 Voir le message
    lorsque je copie et colle le lien dans le navigateur, j'obtiens bien mon image.
    mais si je clique sur le lien et que c'est le plugin jquery qui charge l'image, j'obtiens pleins de caractères spéciaux...

    que dois-je faire ? :/
    Etant donné que j'ai pas vu ton code jQuery, et que d'ailleurs je ne suis pas du tout expert en jQuery... aucune idée

    Eventuellement tu peux faire un HttpHandler qui va chercher le blob et l'envoie au client...

  5. #5
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    voici mon code jQuery :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(".articlePictures").colorbox({rel:"Gallerie d'images"});
    mon code html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <ul id="gallery">
                    <li><a class="articlePictures" href="http://ma-grande-image"><img src="http://ma-petite-image" alt="" /></a></li>
                    <li><a class="articlePictures" href="http://ma-grande-image"><img src="http://ma-petite-image" alt="" /></a></li>
                    <li><a class="articlePictures" href="http://ma-grande-image"><img src="http://ma-petite-image" alt="" /></a></li>
                </ul>
    au passage, voila l'adresse où vous pouvez télécharger le plugin : http://jacklmoore.com/colorbox/

  6. #6
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    alors je suis désolé, mais là je ne comprends plus rien !

    on me dit que je ne peux pas accéder à mon image car il s'agit d'un domaine différent...
    j'ai mis la ligne suivante en dure dans mon programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <li><a class="articlePictures" href="http://willouastro.w.i.pic.centerblog.net/o/df78b657.jpg"><img src="@picture.UrlMini" alt="" /></a></li>
    résultat, je peux ouvrir correctement cette image :


    le problème est donc bien du coté d'azure !

    voici une url pour l'une de mes images : https://storagemaxime.blob.core.wind...6-0ea3684507be

    le problème viendrait-il que c'est un https ??

    Edit
    je ne trouve toujours aucune info sur le net, auriez-vous une piste ?
    bouhaaaa, je tourne en rond.

  7. #7
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    youhouu j'ai trouvé !

    la faute au plugin. j'ai trouvé cette fonction dans le code jquery :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function isImage(url) {
    		return settings.photo || /\.(gif|png|jpe?g|bmp|ico)((#|\?).*)?$/i.test(url);
    	}
    étant une image blob, elle n'a pas d'extension ! donc ça plante. la solution ? le plugin colorbox contient un paramètre "photo" qu'il faut valoriser à True pour que ça marche, que mon image soit reconnu sans vérification de l'url.

    voilà

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Bien vu
    N'oublie pas le bouton

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. accéder élement iframe avec jquery
    Par Thy974 dans le forum jQuery
    Réponses: 2
    Dernier message: 11/02/2011, 17h13
  2. Impossible d'accéder avec l'utilisateur SA
    Par zooffy dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 22/11/2010, 15h22
  3. Réponses: 1
    Dernier message: 06/04/2009, 14h19
  4. Réponses: 6
    Dernier message: 04/01/2008, 12h08
  5. Impossible d'accéder à LDAP avec VB6
    Par Bouassa dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 05/12/2007, 16h15

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