Dengan perkembangan pesat teknologi bahagian hadapan, semakin banyak tapak web menggunakan seni bina pemisah bahagian hadapan dan bahagian belakang Bahagian hadapan dan belakang menggunakan AJAX atau FETCH untuk berkomunikasi bagi meningkatkan pengalaman pengguna. Walau bagaimanapun, di bawah seni bina ini, kami sering menghadapi masalah merentas domain, jadi kami perlu menggunakan beberapa pemalam untuk menyelesaikan masalah ini. Antaranya, Django-cors-headers ialah pilihan yang sangat baik Ia boleh menyelesaikan masalah merentas domain dengan sangat mudah dan mudah dan mudah digunakan.
1. Apakah itu silang domain?
Dalam pembangunan web, perkongsian sumber silang asal (Cross-Origin Resource Sharing) merujuk kepada masalah apabila penyemak imbas menghantar permintaan AJAX, nama domain yang diminta adalah berbeza daripada nama domain halaman semasa, menyebabkan permintaan itu ditolak. Ini direka untuk meningkatkan keselamatan pelayar.
2. Apakah itu django-cors-headers?
django-cors-headers ialah aplikasi Django yang mengendalikan isu merentas domain antara bahagian belakang Django dan halaman web hujung hadapan. Ia boleh menyelesaikan masalah permintaan AJAX dengan mudah antara nama domain yang berbeza, membawa pengalaman pengguna yang lebih baik.
3. Pasang django-cors-headers
Untuk menggunakan django-cors-headers, anda perlu terlebih dahulu memastikan anda telah memasang dan mendayakan Django. Seterusnya, anda boleh memasang django-cors-headers melalui pip:
pip install django-cors-headers
Selepas pemasangan selesai, anda perlu mengkonfigurasinya dalam fail settings.py Django. Tambah dalam INSTALLED_APPS:
INSTALLED_APPS = [ # ... 'corsheaders', # ... ]
Kemudian tambahkan MIDDLEWARE:
MIDDLEWARE = [ # ... 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', # ... ]
Akhir sekali, tambah di bahagian bawah tetapan.py:
CORS_ORIGIN_ALLOW_ALL = True
Ini melengkapkan django-cors- Pemasangan dan konfigurasi daripada tajuk. Nota: Dalam persekitaran pengeluaran, kebenaran khusus domain harus digunakan dan bukannya membenarkan sebarang asal.
4. Gunakan django-cors-headers
Selepas memasang dan mengkonfigurasi django-cors-header, kami boleh menggunakannya dalam pandangan Django untuk menyelesaikan isu merentas domain. Sebagai contoh, kita boleh menambah @csrf_exempt dan @require_http_methods(['POST']) pada fungsi paparan dan menambah kod berikut pada hasil pulangan:
from django.http import JsonResponse from django.views.decorators.csrf import csrf_exempt from django.views.decorators.http import require_http_methods from corsheaders.decorators import cors_exempt @csrf_exempt @require_http_methods(['POST']) @cors_exempt def your_view(request): data = {'result': 'success'} response = JsonResponse(data) response['Access-Control-Allow-Origin'] = '*' response['Access-Control-Allow-Methods'] = 'POST, OPTIONS' response['Access-Control-Allow-Headers'] = 'Accept, Content-Type, Authorization' response['Access-Control-Max-Age'] = '86400' return response
Selepas konfigurasi ini, apabila menggunakan permintaan AJAX atau FETCH Tidak akan ada isu merentas domain.
5. Ringkasan
Untuk aplikasi web yang menggunakan AJAX atau FETCH untuk pemisahan bahagian hadapan dan belakang, isu merentas domain ialah masalah yang mesti diselesaikan. django-cors-headers ialah pilihan yang sangat baik, ia boleh menyelesaikan masalah merentas domain dengan mudah dan menyediakan banyak pilihan konfigurasi yang boleh digunakan mengikut situasi sebenar. Dengan penambahan django-cors-header, kami boleh membangunkan aplikasi web yang hebat dengan lebih mudah dan memberikan pengalaman yang lebih baik.
Atas ialah kandungan terperinci Pengaturcaraan pelayan Python: menggunakan django-cors-header untuk menyelesaikan masalah merentas domain. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!