Pengaturcaraan pelayan Python: menggunakan django-cors-header untuk menyelesaikan masalah merentas domain

王林
Lepaskan: 2023-06-18 11:01:44
asal
1957 orang telah melayarinya

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
Salin selepas log masuk

Selepas pemasangan selesai, anda perlu mengkonfigurasinya dalam fail settings.py Django. Tambah dalam INSTALLED_APPS:

INSTALLED_APPS = [
    # ...
    'corsheaders',
    # ...
]
Salin selepas log masuk

Kemudian tambahkan MIDDLEWARE:

MIDDLEWARE = [
    # ...
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    # ...
]
Salin selepas log masuk

Akhir sekali, tambah di bahagian bawah tetapan.py:

CORS_ORIGIN_ALLOW_ALL = True
Salin selepas log masuk

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
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!