Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menyelesaikan Ralat CORS ngResource AngularJS: 'Tiada pengepala 'Access-Control-Allow-Origin''?

Bagaimana untuk Menyelesaikan Ralat CORS ngResource AngularJS: 'Tiada pengepala 'Access-Control-Allow-Origin''?

Linda Hamilton
Linda Hamiltonasal
2024-12-04 15:53:10697semak imbas

How to Solve the AngularJS ngResource CORS Error:

Ralat CORS: Pengepala 'Access-Control-Allow-Origin' Hilang

Masalah:

Apabila menggunakan ngResource AngularJS untuk membuat permintaan kepada API REST yang dihoskan di Amazon Web Perkhidmatan, ralat berikut berlaku:

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Punca:

Ralat ini biasanya berlaku disebabkan oleh sekatan CORS (Cross-Origin Resource Sharing). CORS menghalang asal yang berbeza (iaitu, nama domain) daripada berinteraksi antara satu sama lain tanpa kebenaran yang jelas.

Penyelesaian:

Terdapat beberapa kaedah untuk menyelesaikan isu ini:

  1. Lumpuhkan CORS: Gunakan sambungan penyemak imbas atau ubah suai penyemak imbas tetapan untuk melumpuhkan perlindungan CORS (tidak disyorkan atas sebab keselamatan).
  2. Gunakan Pemalam Penyemak Imbas: Pasang pemalam penyemak imbas yang secara automatik menambah pengepala yang diperlukan pada permintaan.
  3. Laksanakan Proksi: Gunakan pelayan tempatan (seperti nginx) sebagai proksi untuk memajukan permintaan ke API jauh dan mengubah suai pengepala sebagai diperlukan.
  4. Konfigurasikan Sokongan Bahagian Pelayan: Dayakan CORS pada pelayan API dengan menambahkan pengepala HTTP yang sesuai (cth., Access-Control-Allow-Origin). Rujuk dokumentasi untuk pelayan web khusus anda.

Memahami CORS:

CORS mengehadkan komunikasi silang asal untuk memastikan keselamatan. Apabila permintaan dibuat dari asal yang berbeza, permintaan prapenerbangan dihantar ke pelayan untuk mengesahkan sama ada permintaan itu dibenarkan. Pelayan bertindak balas dengan pengepala Access-Control-Allow-Origin untuk menunjukkan sama ada permintaan itu dibenarkan.

Jika pelayan tidak menyertakan pengepala Access-Control-Allow-Origin, permintaan itu tidak akan diproses , dan penyemak imbas akan memaparkan ralat CORS.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat CORS ngResource AngularJS: 'Tiada pengepala 'Access-Control-Allow-Origin''?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn