Apa itu Cors?
CORS adalah standar W3C, yang merupakan singkatan dari "Berbagi sumber daya lintas asal". Ini memungkinkan browser untuk membuat permintaan XMLHttpRequest ke server lintas asal, sehingga mengatasi keterbatasan bahwa AJAX hanya dapat digunakan secara homogen.
1. Pendahuluan
CORS membutuhkan dukungan browser dan server. Saat ini, semua browser mendukung fitur ini, dan browser IE tidak boleh lebih rendah dari IE10.
Seluruh proses komunikasi CORS diselesaikan secara otomatis oleh browser dan tidak memerlukan partisipasi pengguna. Bagi pengembang, komunikasi CORS tidak berbeda dengan komunikasi AJAX homolog, dan kodenya persis sama. Setelah browser menemukan bahwa permintaan AJAX melintasi sumber, browser akan secara otomatis menambahkan beberapa informasi header tambahan, dan terkadang satu permintaan tambahan lagi, tetapi pengguna tidak akan merasakannya.
Oleh karena itu, kunci untuk mencapai komunikasi CORS adalah server. Selama server mengimplementasikan antarmuka CORS, server dapat berkomunikasi lintas sumber.
Faktanya, program server web (seperti ASP.NET atau PHP, dll.) tidak dapat membedakan dan tidak akan mengelola apakah permintaan Http yang masuk adalah permintaan Ajax lintas domain.CORS dirancang untuk memecahkan masalah ini, dan standar CORS kustom W3C memberi browser mekanisme untuk memungkinkan permintaan lintas domain Ajax.
2: Kode permintaan JS Ajax asli
Karena saya tidak ingin mereferensikan jQuery, saya merangkum metode berikut dengan js, sebagai berikut:
Ajax meminta pengujian antarmuka dan menemukan kesalahan sebagai berikut:
Tiga: Menetapkan metode pengontrol untuk mengizinkan lintas domain
BegitulahSemua diperbolehkanMetode pengontrol atau API adalah lintas domain, dalam file web.configsistem.webServerKonfigurasi berikut ditambahkan di bawah simpul:
Di atas bukanlah hasil yang kita inginkan! Jika kita hanya ingin mengizinkan nama domain untuk mengakses salah satu antarmuka kita di seluruh domain, kita perlu menentukan fitur yang terlihat seperti ini:
Kode untuk mengatur izin akses lintas domain adalah paragraf ini HttpContext.Response.AppendHeader("Access-Control-Allow-Origin", origin);
Kami mengatur karakteristik di atas metode pengontrol sebagai berikut:
Kami memulai permintaan Ajax lagi dengan hasil seperti yang ditunjukkan di bawah ini:
Sumber daya antarmuka API dari situs web kami yang lain dapat berhasil diakses.
(Akhir)
|