


React penyelesaian permintaan merentas domain: cara menangani isu akses merentas domain dalam aplikasi bahagian hadapan
Bertindak balas penyelesaian permintaan merentas domain: Cara menangani isu akses merentas domain dalam aplikasi bahagian hadapan, contoh kod khusus diperlukan
Dalam pembangunan bahagian hadapan, kami sering menghadapi masalah permintaan merentas domain. Permintaan merentas domain bermakna alamat sasaran (nama domain, port, protokol) permintaan HTTP yang dihantar oleh aplikasi bahagian hadapan adalah tidak konsisten dengan alamat halaman semasa. Disebabkan dasar asal yang sama penyemak imbas, permintaan merentas domain adalah terhad. Walau bagaimanapun, dalam pembangunan sebenar, kita sering perlu berkomunikasi dengan pelayan yang berbeza, jadi penyelesaian untuk permintaan merentas domain adalah sangat penting.
Artikel ini akan memperkenalkan penyelesaian permintaan merentas domain React dan memberikan contoh kod khusus.
1. JSONP
JSONP ialah penyelesaian untuk permintaan merentas domain. Ia mengambil kesempatan daripada fakta bahawa teg <script></script>
tidak mempunyai sekatan merentas domain. Langkah pelaksanaan khusus adalah seperti berikut: <script></script>
标签没有跨域限制的特性。具体实现步骤如下:
- 在前端应用中,增加一个
<script></script>
标签,将服务端的URL作为其src
属性的值。 - 在服务端,处理该请求,并返回一个函数调用,该函数作为回调函数,将数据以参数的形式传递给前端应用。
- 前端应用在加载完该
<script></script>
标签后,就可以获取到从服务端返回的数据。
以下是一个示例代码:
function jsonp(url, callback) { const script = document.createElement('script'); script.src = url; window[callback] = function(data) { delete window[callback]; document.body.removeChild(script); callback(data); }; document.body.appendChild(script); } function fetchUserData() { jsonp('http://api.example.com/user', 'handleUserData'); } function handleUserData(data) { // 处理从服务端返回的数据 } fetchUserData();
二、CORS
CORS(Cross-Origin Resource Sharing)是浏览器提供的一种跨域请求的解决方案,它通过在HTTP请求头中添加特定字段,实现跨域请求的权限控制。以下是使用CORS进行跨域请求的示例代码:
fetch('http://api.example.com/user', { method: 'GET', headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' // 设置允许跨域的域名 }, }) .then(response => response.json()) .then(data => { // 处理从服务端返回的数据 }) .catch(error => { console.error(error); });
在服务端,需要设置响应头中的Access-Control-Allow-Origin
字段,指定允许跨域访问的域名。如果允许所有域名都跨域访问,可以设置该字段的值为*
。
三、使用反向代理
另一种常见的解决跨域请求问题的方法是使用反向代理。具体步骤如下:
- 在本地开启一个代理服务器,将目标服务器的请求转发到代理服务器上。
- 再由代理服务器将请求发送到目标服务器,并将响应返回给前端应用。
这样,前端应用发送的请求就可以绕过浏览器的同源策略,实现了跨域请求。
以下是一个使用反向代理的示例代码:
const express = require('express'); const proxy = require('http-proxy-middleware'); const app = express(); app.use('/api', proxy({ target: 'http://api.example.com', changeOrigin: true })); app.listen(3000, () => { console.log('Proxy server is running on port 3000'); });
通过上述代码,我们将/api
开头的请求转发到了http://api.example.com
- Dalam aplikasi bahagian hadapan, tambahkan teg
<script></script>
dan gunakan URL pelayan sebagai nilaisrcnya
atribut. - Di bahagian pelayan, proses permintaan dan kembalikan panggilan fungsi, yang berfungsi sebagai fungsi panggil balik dan menghantar data ke aplikasi bahagian hadapan dalam bentuk parameter.
- Selepas memuatkan teg
<script></script>
, aplikasi bahagian hadapan boleh mendapatkan data yang dikembalikan daripada pelayan.
rrreee
2. CORSCORS (Perkongsian Sumber Silang Asal) ialah penyelesaian permintaan merentas domain yang disediakan oleh penyemak imbas Ia menggunakan permintaan HTTP Tambah khusus medan ke pengepala untuk melaksanakan kawalan kebenaran untuk permintaan merentas domain. Berikut ialah contoh kod untuk menggunakan CORS untuk membuat permintaan merentas domain: 🎜rrreee🎜Di bahagian pelayan, anda perlu menetapkan medanAccess-Control-Allow-Origin
dalam pengepala respons untuk menentukan nama domain yang membenarkan akses merentas domain. Jika akses merentas domain dibenarkan untuk semua nama domain, nilai medan ini boleh ditetapkan kepada *
. 🎜🎜3. Gunakan proksi terbalik🎜🎜Satu lagi cara biasa untuk menyelesaikan masalah permintaan merentas domain ialah menggunakan proksi terbalik. Langkah khusus adalah seperti berikut: 🎜- Buka pelayan proksi secara setempat dan majukan permintaan daripada pelayan sasaran ke pelayan proksi.
- Pelayan proksi kemudiannya menghantar permintaan kepada pelayan sasaran dan mengembalikan respons kepada aplikasi bahagian hadapan.
/api
ke http://api.example.com. 🎜🎜Ringkasan: 🎜🎜Artikel ini memperkenalkan tiga penyelesaian untuk permintaan merentas domain React: JSONP, CORS dan menggunakan proksi terbalik. Dalam pembangunan sebenar, mengikut senario dan keperluan aplikasi tertentu, penyelesaian yang sesuai boleh dipilih untuk mengendalikan permintaan merentas domain. Saya berharap kandungan artikel ini akan membantu dalam menyelesaikan masalah permintaan merentas domain React. 🎜
Atas ialah kandungan terperinci React penyelesaian permintaan merentas domain: cara menangani isu akses merentas domain dalam aplikasi bahagian hadapan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Win11 ialah sistem pengendalian terkini yang dilancarkan oleh Microsoft Berbanding dengan versi sebelumnya, Win11 telah meningkatkan reka bentuk antara muka dan pengalaman pengguna. Walau bagaimanapun, sesetengah pengguna melaporkan bahawa mereka menghadapi masalah tidak dapat memasang pek bahasa Cina selepas memasang Win11, yang menyebabkan masalah untuk mereka menggunakan bahasa Cina dalam sistem. Artikel ini akan memberikan beberapa penyelesaian kepada masalah yang Win11 tidak dapat memasang pek bahasa Cina untuk membantu pengguna menggunakan bahasa Cina dengan lancar. Pertama, kita perlu memahami mengapa pek bahasa Cina tidak boleh dipasang. Secara umumnya, Win11

Tajuk: Penyelesaian yang berkesan untuk menyelesaikan masalah aksara bercelaru yang disebabkan oleh pengubahsuaian set aksara Oracle Dalam pangkalan data Oracle, apabila set aksara diubah suai, masalah aksara bercelaru sering berlaku disebabkan kehadiran aksara yang tidak serasi dalam data. Untuk menyelesaikan masalah ini, kita perlu menggunakan beberapa penyelesaian yang berkesan. Artikel ini akan memperkenalkan beberapa penyelesaian khusus dan contoh kod untuk menyelesaikan masalah aksara bercelaru yang disebabkan oleh pengubahsuaian set aksara Oracle. 1. Eksport data dan set semula set aksara Pertama, kita boleh mengeksport data dalam pangkalan data dengan menggunakan arahan expdp.

Masalah dan penyelesaian biasa untuk fungsi OracleNVL Pangkalan data Oracle ialah sistem pangkalan data hubungan yang digunakan secara meluas, dan selalunya perlu untuk menangani nilai nol semasa pemprosesan data. Untuk menangani masalah yang disebabkan oleh nilai nol, Oracle menyediakan fungsi NVL untuk mengendalikan nilai nol. Artikel ini akan memperkenalkan masalah biasa dan penyelesaian fungsi NVL, dan memberikan contoh kod khusus. Soalan 1: Penggunaan fungsi NVL yang tidak betul Sintaks asas fungsi NVL ialah: NVL(expr1,default_value).

Cabaran biasa yang dihadapi oleh algoritma pembelajaran mesin dalam C++ termasuk pengurusan memori, multi-threading, pengoptimuman prestasi dan kebolehselenggaraan. Penyelesaian termasuk menggunakan penunjuk pintar, perpustakaan benang moden, arahan SIMD dan perpustakaan pihak ketiga, serta mengikuti garis panduan gaya pengekodan dan menggunakan alat automasi. Kes praktikal menunjukkan cara menggunakan perpustakaan Eigen untuk melaksanakan algoritma regresi linear, mengurus memori dengan berkesan dan menggunakan operasi matriks berprestasi tinggi.

Penyebab dan penyelesaian biasa untuk aksara Cina yang kacau dalam pemasangan MySQL MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan, tetapi anda mungkin menghadapi masalah aksara Cina yang kacau semasa digunakan, yang membawa masalah kepada pembangun dan pentadbir sistem. Masalah aksara Cina bercelaru terutamanya disebabkan oleh tetapan set aksara yang salah, set aksara yang tidak konsisten antara pelayan pangkalan data dan pelanggan, dsb. Artikel ini akan memperkenalkan secara terperinci punca dan penyelesaian biasa aksara Cina yang kacau dalam pemasangan MySQL untuk membantu semua orang menyelesaikan masalah ini dengan lebih baik. 1. Sebab biasa: tetapan set watak

PHP, Vue dan React: Bagaimana untuk memilih rangka kerja bahagian hadapan yang paling sesuai? Dengan pembangunan berterusan teknologi Internet, rangka kerja bahagian hadapan memainkan peranan penting dalam pembangunan Web. PHP, Vue dan React ialah tiga rangka kerja bahagian hadapan yang mewakili, masing-masing mempunyai ciri dan kelebihan tersendiri. Apabila memilih rangka kerja bahagian hadapan yang hendak digunakan, pembangun perlu membuat keputusan termaklum berdasarkan keperluan projek, kemahiran pasukan dan pilihan peribadi. Artikel ini akan membandingkan ciri dan penggunaan tiga rangka kerja bahagian hadapan PHP, Vue dan React.

Penyepaduan rangka kerja Java dan rangka kerja React: Langkah: Sediakan rangka kerja Java bahagian belakang. Buat struktur projek. Konfigurasikan alat binaan. Buat aplikasi React. Tulis titik akhir REST API. Konfigurasikan mekanisme komunikasi. Kes praktikal (SpringBoot+React): Kod Java: Tentukan pengawal RESTfulAPI. Kod tindak balas: Dapatkan dan paparkan data yang dikembalikan oleh API.

Analisis kelemahan keselamatan rangka kerja Java menunjukkan bahawa XSS, suntikan SQL dan SSRF adalah kelemahan biasa. Penyelesaian termasuk: menggunakan versi rangka kerja keselamatan, pengesahan input, pengekodan output, mencegah suntikan SQL, menggunakan perlindungan CSRF, melumpuhkan ciri yang tidak perlu, menetapkan pengepala keselamatan. Dalam kes sebenar, kelemahan suntikan ApacheStruts2OGNL boleh diselesaikan dengan mengemas kini versi rangka kerja dan menggunakan alat semakan ekspresi OGNL.
