Lanike71 Δημοσ. 10 Ιανουαρίου 2021 Share Δημοσ. 10 Ιανουαρίου 2021 Καλησπέρα, δοκίμασα να κατεβάσω ένα json από σελίδα και μου πέταξε το εξής σφάλμα: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/CORSMissingAllowOrigin Αν κατάλαβα καλά, είναι ζήτημα αν η σελίδα που κατέχει το json το δίνει σε άλλο σέρβερ ή όχι. Δεδομένου όμως ότι το ίδιο json το κατέβασα εύκολα με java και χωρίς κάποιο περιορισμό, τι μπορώ να κάνω; Δοκίμασα και κάτι περίεργες λύσεις όπως μέσω proxy, αλλά και πάλι δε δούλεψε. https://stackoverflow.com/questions/10636611/how-does-access-control-allow-origin-header-work Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
k33theod Δημοσ. 11 Ιανουαρίου 2021 Share Δημοσ. 11 Ιανουαρίου 2021 Μία λύση που έχω εφαρμόσει και εγώ είναι να το πάρεις με το backend και να το ζητάς μετά από το δικό σου server Δηλαδή αντί js->json_url κάνεις js->my_server->json_url Αν χρειάζεσαι παράδειγμα σε php ή WP πες μου. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Lanike71 Δημοσ. 12 Ιανουαρίου 2021 Μέλος Share Δημοσ. 12 Ιανουαρίου 2021 17 ώρες πριν, k33theod είπε Μία λύση που έχω εφαρμόσει και εγώ είναι να το πάρεις με το backend και να το ζητάς μετά από το δικό σου server Δηλαδή αντί js->json_url κάνεις js->my_server->json_url Αν χρειάζεσαι παράδειγμα σε php ή WP πες μου. Ναι αυτή τη λύση σκέφτηκα κι εγώ, αφού δε βρίσκω άκρη. Αν έχεις λινκ με παράδειγμα, θα με διευκόλυνε, ευχαριστώ. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
k33theod Δημοσ. 12 Ιανουαρίου 2021 Share Δημοσ. 12 Ιανουαρίου 2021 (επεξεργασμένο) Δεν είναι link είναι κώδικας που έχω χρησιμοποιήσει στέλνει json λαμβάνει json js fetch('./file_on_myserver.php', { method: 'POST', // or 'PUT' headers: { "Content-Type":"application/json" }, body: JSON.stringify(My_data),//To My_data είναι έγγυρο json που το κάνεις εσύ στο Front }) .then((response) => response.json()) .then((data) => { //use of data }) .catch(err => console.log(err));//error handler eg php στο σερβερ <?php $ch = curl_init("http://v22019068494590849.quicksrv.de:7380");//To service curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));//xreiazetai curl_setopt($ch, CURLOPT_POSTFIELDS,file_get_contents('php://input')); //to json apo to fetch js curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); xreiazetai $result = curl_exec($ch); echo $result; curl_close ( $ch ); Επεξ/σία 12 Ιανουαρίου 2021 από k33theod Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Lanike71 Δημοσ. 13 Ιανουαρίου 2021 Μέλος Share Δημοσ. 13 Ιανουαρίου 2021 Δεν ξέρω αν το είπα σωστά, αλλά θέλω το εξής: Να κατεβάζω ένα json από μία σελίδα. Ενώ σε java δε δημιούργησε πρόβλημα, η js δεν τα καταφέρνει, πετάει μήνυμα στην κονσόλα: "Αιτία: η κεφαλίδα ‘Access-Control-Allow-Origin’ του CORS απουσιάζει". Δοκίμασα με ajax, άλλαξα και τον τύπο σε jsonp αλλά πάλι τίποτα. Δοκίμασα και με fetch και πάλι τα ίδια... Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
k33theod Δημοσ. 13 Ιανουαρίου 2021 Share Δημοσ. 13 Ιανουαρίου 2021 (επεξεργασμένο) αυτό το κατάλαβα. Τι τρέχει στο backend java? Τι request είναι get? Επεξ/σία 13 Ιανουαρίου 2021 από k33theod Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
k33theod Δημοσ. 13 Ιανουαρίου 2021 Share Δημοσ. 13 Ιανουαρίου 2021 html Αυτό είναι πλήρες. Δυστηχώς δεν μπορώ να ανεβάσω κώδικα γιατί με blockarei Η ουσία είναι δεν κάνω XHR request στον opap γιατί ο browser δεν το επιτρέπει λόγω CORS. Κάνω λοιπόν το request στον server μου. O server μου κάνει request στον οπαπ κάνένα πρόβλημα με CORS γιατί δεν τρέχει στον browser. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Lanike71 Δημοσ. 14 Ιανουαρίου 2021 Μέλος Share Δημοσ. 14 Ιανουαρίου 2021 Δεν την καταλαβαίνω και τόσο τη λογική του όλου, αλλά αφού δουλεύει, ευχαριστώ. Δηλαδή στην ουσία με js εκτελείς την php που είναι στο σέρβερ σου και το επιτρέπει επειδή απλά δεν τρέχει στο browser; Νομίζω και το λνκ που παρέθεσα, την ίδια λογική είχε η λύση https://stackoverflow.com/questions/10636611/how-does-access-control-allow-origin-header-work που χτυπούσες μέσω του https://cors-anywhere.herokuapp.com/ το λινκ που ήθελες αλλά και πάλι δε δούλευε. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
k33theod Δημοσ. 14 Ιανουαρίου 2021 Share Δημοσ. 14 Ιανουαρίου 2021 Η λογική είναι η εξής. Έχω ένα browser που δεν επιτρέπει cross origin request. For security reasons, browsers restrict cross-origin HTTP requests initiated from scripts. For example, XMLHttpRequest and the Fetch API follow the same-origin policy. This means that a web application using those APIs can only request resources from the same origin the application was loaded from unless the response from other origins includes the right CORS headers. Οκ δεν μπορώ να πάρω τα data που θέλω με τον browser. Μήπως μπορώ κάπως αλλιώς. Ναι μπορώ με java όπως ανέφερες. Ζητάω λοιπόν τα data που θέλω με τον browser από την java. H java παίρνει το request από τον browser το στέλνει στη δική της γλώσσα στο api του opap και όταν έρχεται η απάντηση τη στέλνει πίσω στον browser. Είναι δηλαδή ο ενδοιάμεσως γιατί δεν επιτρέπεται επικοινωνία μεταξύ browser opap. Δεν ξέρω αν μπορώ να το πω πιό απλά. Κάποια πράγματα που γράφονται στην ερώτηση του link όπως The response header of MyCode.js contains Access-Control-Allow-Origin: http://siteB, which I thought meant that MyCode.js was allowed to make cross-origin references to the site B. δεν βγάζουν κανένα νόημα οπότε δεν ξέρω τι ακριβώς γράφουν Η απάντηση φένεται σωστή δεν δείχνει όμως λύση που σου έγραψα. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Lanike71 Δημοσ. 14 Ιανουαρίου 2021 Μέλος Share Δημοσ. 14 Ιανουαρίου 2021 Κατανοητό, ευχαριστώ πολύ για την επεξήγηση αλλά και τη λύση. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
k33theod Δημοσ. 14 Ιανουαρίου 2021 Share Δημοσ. 14 Ιανουαρίου 2021 (επεξεργασμένο) Σκέφτηκα τώρα ένα ισοδύναμο. Πως παίρνει το site δεδομένα από την database; Τα ζητάει από thn java sτο server. O java κάνει το query to stelnei sthn database pairnei thn apanthsi tin stelnei sto site. Και όλο αυτό γιατί ο browser δεν επιτρέπει επικοινωνία με την database Είναι ακριβώς η ίδια λογική. Επεξ/σία 14 Ιανουαρίου 2021 από k33theod 1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα