Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur not allowed by Access-Control-Allow-Origin.

jQuery ajax

Sujet résolu
    14 août 2019 à 10:16:15

    Bonjour à tous,
    Ce matin je bute sur un problème un peu particulier avec « not allowed by Access-Control-Allow-Origin » en mode $.ajax
    J’ai écrit le script à partir de mon site perso qui suit :
    $.ajax({
    			url : "https://api.cquest.org/dvf?code_postal=94100",
    			type : 'GET',
    			crossDomain: true,
    			contentType: "application/html; charset=utf-8",
    			headers: {
    				'access-Control-Allow-Origin': 'https://xxxx.monsite.fr'
    			},
    			dataType : 'jsonp',
    			success : function(jsonp, statut){
    //				$(code_html).appendTo("#resultat"); // Je passe code_html à jQuery() qui va nous créer l'arbre DOM !;
    				alert('Succès');		
    			},
    			
    			error : function(jqXHR, textStatut, errorThrown){
    /				alert('Erreur : \n'+jqXHR+'\n'+textStatut+'\n'+errorThrown);
    			},
    			complete : function(resultat, statut){
    				alert('Fini');
    			}
    		
    		});
    Systématiquement jQuery me retourne l’erreur suivante :
    Origin https://priximmo.monsite.fr is not allowed by Access-Control-Allow-Origin
    La base de données auquel je souhaite accéder n’est évidemment pas la base de données sur mon site donc j’ai un problème de cross références que je n’arrive pas à résoudre.
    Vous pouvez tester ce site, c’est le site du ministère des finances diffusant le prix de vente de toutes les mutations immobilières sur les 3 dernières années classé par code postal. 
    Je compte vraiment sur vos conseils éclairés pour résoudre ce problème que je n’ai jamais eu à résoudre auparavant.
    D’avance merci

    -
    Edité par bronson 14 août 2019 à 11:18:53

    • Partager sur Facebook
    • Partager sur Twitter
      14 août 2019 à 10:20:50 - Message modéré pour le motif suivant : La demande de l'équipe de modération a été honorée.


      Pas d'aide concernant le code par MP, le forum est là pour ça :)

        14 août 2019 à 11:20:01

        Merci pour votre assistance !
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          14 août 2019 à 11:23:53

          La quasi-totalité des options ne servent à rien, sinon faire foirer la requête. Je te suggère de prendre le temps de comprendre ce que tu fais plutôt que de copier du code au hasard.

          TL;DR vire typecrossDomaincontentTypeheaders et dataType.

          • Partager sur Facebook
          • Partager sur Twitter
            14 août 2019 à 17:15:10

            Merci pour ton retour,

            Ta remarque est vrai, j'ai tellement bricolé ce script que je ne me sais plus vraiment ce que je dois faire !

            J'ai viré les attributs que tu m'a demandé de virer, malheureusement le script retourne 'erreur'.

            	$.ajax({
            //			vire type, crossDomain, contentType, headers et dataType
            			url : "https://api.cquest.org/dvf?code_postal=94100",
            			success : function(jsonp, statut){
            				alert('Succès');		
            			},
            			
            			error : function(jqXHR, textStatut, errorThrown){
            				alert('Erreur : \n'+jqXHR+'\n'+textStatut+'\n'+errorThrown);
            			},
            			complete : function(resultat, statut){
            				alert('Fini');
            			}
            		
            		});
            



            -
            Edité par bronson 15 août 2019 à 22:36:55

            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              15 août 2019 à 19:03:23

              Je vois toujours dataType..?
              • Partager sur Facebook
              • Partager sur Twitter
                15 août 2019 à 22:37:40

                C enlevé mais le résultat est toujours la même : erreur

                -
                Edité par bronson 17 août 2019 à 14:02:35

                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  15 août 2019 à 23:11:41

                  Que dit l'erreur ? Soit tu as atteint un quota soit ce n'est pas ce code qui est exécuté vu qu'il marche dans codepen.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    18 août 2019 à 0:07:30

                    Bonsoir.

                    Je ne sais pas quelle version de jQuery tu utilises, mais pour rappel : 

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

                    Anonyme
                      18 août 2019 à 8:49:51

                      Je ne pense pas que ça ait un rapport vu qu'ici les callbacks sont passés comme options.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        1 septembre 2019 à 12:59:44

                        Bonjour à tous je ré-apparais après qq jours de plage et soleil !!

                        Donc pour répondre au diverses personnes qui se intéressées à mon cas, j'ai réglé le pb des « crois-orign » en utilisant l'API jquery $.getJSON de la manière suivante :

                        $.getJSON( cible, function( json ) { … }

                        Où cible est de la forme

                        https://api.cquest.org/dvf?code_postal="+$("#code_postal").val()

                        Suite à d'intenses recherches sur le web j'ai compris que la plupart des navigateurs bloquaient le DL des fichiers « cross-orign » hormis les fichiers au format JSON qui ne semblent pas concernés par ces restrictions.

                        Maintenant je bute sur le pb du tri final. j'ai un tableau de la forme ci-dessous que je veux trier sur divers critères.

                        [{"date_mutation":"2016-07-25", "type_local":"Maison","numero_voie":"27","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"250000", "Prix_m2":"4 032"},
                        {"date_mutation":"2015-01-21", "type_local":"Appartement","numero_voie":"37","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"368000", "Prix_m2":"4 279"},
                        {"date_mutation":"2017-10-27", "type_local":"Maison","numero_voie":"68",
                        "type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"680000", "Prix_m2":"4 533"},{"date_mutation":"2017-02-20", "type_local":"Appartement","numero_voie":"37","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"301900", "Prix_m2":"4 135"},
                        {"date_mutation":"2014-06-06", "type_local":"Appartement","numero_voie":"8","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"340000", "Prix_m2":"5 666"},{"date_mutation":"2017-07-28", "type_local":"Appartement","numero_voie":"37","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"458500", "Prix_m2":"5 270"},
                        {"date_mutation":"2015-12-15", "type_local":"Appartement","numero_voie":"37","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"369800", "Prix_m2":"4 997"},
                        {"date_mutation":"2014-07-01", "type_local":"Appartement","numero_voie":"37","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"255000", "Prix_m2":"4 903"},
                        {"date_mutation":"2015-10-09", "type_local":"Appartement","numero_voie":"37","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"235000", "Prix_m2":"4 519"},
                        {"date_mutation":"2018-12-27", "type_local":"Appartement","numero_voie":"37","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"285000", "Prix_m2":"5 377"},
                        {"date_mutation":"2017-07-17", "type_local":"Appartement","numero_voie":"57","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"337000", "Prix_m2":"5 435"},
                        {"date_mutation":"2018-09-07", "type_local":"Appartement","numero_voie":"37","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"311000", "Prix_m2":"6 098"},
                        {"date_mutation":"2016-07-27", "type_local":"Appartement","numero_voie":"37","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"254000", "Prix_m2":"5 183"},
                        {"date_mutation":"2017-10-31", "type_local":"Maison","numero_voie":"33","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"701000", "Prix_m2":"6 095"},
                        {"date_mutation":"2015-11-16", "type_local":"Appartement","numero_voie":"57","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"311000", "Prix_m2":"5 016"}]

                        [{"date_mutation":"2015-12-15", "type_local":"Appartement","numero_voie":"37","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"369800", "Prix_m2":"4 997"},
                        {"date_mutation":"2014-07-01", "type_local":"Appartement","numero_voie":"37","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"255000", "Prix_m2":"4 903"},
                        {"date_mutation":"2015-10-09", "type_local":"Appartement","numero_voie":"37","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"235000", "Prix_m2":"4 519"},
                        {"date_mutation":"2018-12-27", "type_local":"Appartement","numero_voie":"37","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"285000", "Prix_m2":"5 377"},
                        {"date_mutation":"2017-07-17", "type_local":"Appartement","numero_voie":"57","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"337000", "Prix_m2":"5 435"},
                        {"date_mutation":"2018-09-07", "type_local":"Appartement","numero_voie":"37","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"311000", "Prix_m2":"6 098"},
                        {"date_mutation":"2016-07-27", "type_local":"Appartement","numero_voie":"37","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"254000", "Prix_m2":"5 183"},
                        {"date_mutation":"2017-10-31", "type_local":"Maison","numero_voie":"33","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"701000", "Prix_m2":"6 095"},{"date_mutation":"2015-11-16", "type_local":"Appartement","numero_voie":"57","type_voie":"AV","voie nom":"XXXXXX", "valeur_fonciere":"311000", "Prix_m2":"5 016"}] 

                        Comment faire pour trier ce tableau JSON par ex sur "Prix_m2" ou "date_mutation", je patauge allègrement !

                        Vos lumières me seront très utiles, d'avance merci



                        -
                        Edité par bronson 1 septembre 2019 à 13:11:33

                        • Partager sur Facebook
                        • Partager sur Twitter
                          2 septembre 2019 à 1:36:34

                          Tu veut avoir juste les « Prix_m2 » dans ton json ?

                          Dans ce cas utilise la boucle for

                          -
                          Edité par Kicraft 2 septembre 2019 à 1:37:02

                          • Partager sur Facebook
                          • Partager sur Twitter
                          Anonyme
                            2 septembre 2019 à 10:37:36

                            Tes "intenses recherches" sont malheureusement complètement fausses. Comme tu n'as pas été plus précis que "erreur" on ne pourra pas t'en dire plus de toute façon.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              2 septembre 2019 à 12:01:59

                              Tous les navigateurs bloquent ces requêtes si:

                              • la configuration de la requête ne précise pas qu'elle va être cross-origin
                              • que le serveur n'est pas configuré pour s'autoriser à répondre à des requêtes cross-origin

                              Bref faut les bons headers qui vont bien et la bonne config coté serveur, c'est rarement automatique. C'est une question de sécurité.

                              • Partager sur Facebook
                              • Partager sur Twitter
                              /!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
                                14 septembre 2019 à 23:05:03

                                @Genroa,

                                je ne sais d'ou tu sort tes allégations mais j'ai signalé +haut la solution avec jQuery ajax en utilisant $.getJSON fonctionnait très bien !

                                Jé télécharge un fichier JSON sur le serveur de Bercy pour le traiter en local et ceci sans aucun pb.

                                Tu peux également déclarer une variable PHP sur le serveur contenant le fichier JSON, traiter le tout sur le serveur et renvoyer le résultat sur la console front user par ajax par ex..

                                -
                                Edité par bronson 14 septembre 2019 à 23:12:36

                                • Partager sur Facebook
                                • Partager sur Twitter

                                Erreur not allowed by Access-Control-Allow-Origin.

                                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                • Editeur
                                • Markdown