Εργάζομαι σε μια εφαρμογή που χρησιμοποιεί vue js. Σύμφωνα με τη ρύθμιση μου έχω ανάγκη να περάσω σε μεταβλητή στο url μου όταν αλλάζει η ρύθμιση.
$.get('http://172.16.1.157:8002/firstcolumn/' + c1v + '/' + c1b, function (data) {
// some code...
});
αλλά όταν η εφαρμογή μου πατάει στο url, εμφανίζει το ακόλουθο μήνυμα.
Failed to load http://172.16.1.157:8002/firstcolumn/2017-03-01/2017-10-26: Redirect from 'http://172.16.1.157:8002/firstcolumn/2017-03-01/2017-10-26' to 'http://172.16.1.157:8002/firstcolumn/2017-03-01/2017-10-26/' has been blocked by CORS policy: Δεν υπάρχει επικεφαλίδα 'Access-Control-Allow-Origin' στον αιτούμενο πόρο. Συνεπώς, δεν επιτρέπεται η πρόσβαση στην προέλευση 'http://localhost:8080'.
Εκτός από αυτό που ανέφερε ο awd σχετικά με το να ζητήσετε από τον υπεύθυνο του διακομιστή να τον επαναρυθμίσει (μια μη πρακτική λύση για τοπική ανάπτυξη), χρησιμοποιώ ένα πρόσθετο αλλαγής προέλευσης chrome όπως αυτό:
Μπορείτε να κάνετε τον τοπικό σας διακομιστή ανάπτυξης (π.χ.: localhost:8080)
να φαίνεται ότι προέρχεται από 172.16.1.157:8002 ή οποιοδήποτε άλλο domain
.
Ζητήστε από το άτομο που συντηρεί το διακομιστή στη διεύθυνση http://172.16.1.157:8002/ να προσθέσει το όνομα του κεντρικού υπολογιστή σας στο Access-Control-Allow-Origin hosts, ο διακομιστής θα πρέπει να επιστρέψει μια επικεφαλίδα παρόμοια με την ακόλουθη με την απάντηση-
Access-Control-Allow-Origin: yourhostname:port
Γεια σας Αν κατάλαβα καλά, κάνετε ένα XMLHttpRequest σε διαφορετικό τομέα από αυτόν που βρίσκεται η σελίδα σας. Άρα ο browser το μπλοκάρει καθώς συνήθως επιτρέπει ένα αίτημα στην ίδια προέλευση για λόγους ασφαλείας. Πρέπει να κάνετε κάτι διαφορετικό όταν θέλετε να κάνετε ένα cross-domain request. Ένα σεμινάριο για το πώς να το πετύχετε αυτό είναι το Using CORS.
Όταν χρησιμοποιείτε το postman δεν περιορίζονται από αυτή την πολιτική. Παρατίθεται από το Cross-Origin XMLHttpRequest:
Οι κανονικές ιστοσελίδες μπορούν να χρησιμοποιήσουν το αντικείμενο XMLHttpRequest για να στείλουν και να λάβουν δεδομένα από απομακρυσμένους διακομιστές, αλλά περιορίζονται από την ίδια πολιτική προέλευσης. Οι επεκτάσεις δεν είναι τόσο περιορισμένες. Μια επέκταση μπορεί να μιλήσει σε απομακρυσμένους διακομιστές εκτός της προέλευσής της, αρκεί πρώτα να ζητήσει δικαιώματα διασταυρούμενης προέλευσης.