Dengan aplikasi meluas Vue dalam pembangunan bahagian hadapan, semakin ramai pembangun turut menghadapi masalah merentas domain Vue. Masalah merentas domain Vue biasanya disebabkan oleh nama domain yang berbeza antara alamat antara muka pelayan dan alamat halaman web bahagian hadapan. Dalam artikel ini, kami akan meneroka punca dan penyelesaian masalah merentas domain Vue.
Masalah merentas domain disebabkan oleh dasar asal yang sama. Dasar asal yang sama bermakna hanya URL yang terdiri daripada nama domain, protokol dan port yang sama boleh mengakses satu sama lain. Contohnya, a.example.com dan b.example.com ialah nama domain yang berbeza, dan komunikasi antara mereka ialah komunikasi merentas domain.
Tanpa sekatan dasar asal yang sama, tapak web berniat jahat boleh mengakses data pengguna di tapak web lain secara bebas, yang akan mengancam privasi dan keselamatan pengguna. Oleh itu, penyemak imbas mengenakan sekatan dasar asal yang sama pada komunikasi antara nama domain yang berbeza.
Kaedah proksi bahagian hadapan adalah untuk menghantar semua permintaan ke pelayan bahagian belakang. pada domain yang sama dengan halaman web bahagian hadapan , perkhidmatan bahagian belakang kemudian menghantar permintaan ke antara muka sasaran. Mengambil projek Vue sebagai contoh, kita boleh menggunakan perpustakaan axios untuk melaksanakan proksi bahagian hadapan.
Dalam persekitaran keluaran, kami boleh menggunakan projek Vue pada pelayan bahagian belakang, menghapuskan keperluan untuk operasi proksi apabila masalah merentas domain berlaku. Apabila membangun secara tempatan, proksi boleh dikonfigurasikan dalam fail vue.config.js
untuk mencapai akses kepada antara muka sasaran.
module.exports = { devServer: { proxy: { '/api': { target: 'http://localhost:3000', changeOrigin: true, pathRewrite: { '^/api': '' } } } } }
Konfigurasi ini bermakna kami akan menghantar semua permintaan bermula dengan /api
ke http://localhost:3000
melalui proksi dan alamat proksi changeOrigin
ditetapkan kepada benar.
Bahagian belakang juga boleh dikonfigurasikan untuk menyokong permintaan merentas domain. Contohnya, menggunakan Node.js sebagai perkhidmatan hujung belakang dan menggunakan rangka kerja koa2, anda boleh menggunakan perisian tengah koa2-cors untuk mengendalikan permintaan merentas domain.
const Koa = require('koa'); const cors = require('@koa/cors'); const app = new Koa(); app.use(cors());
Kod ini bermakna kami menggunakan koa2-cors
perisian tengah pada aplikasi Koa untuk menyokong permintaan merentas domain. Di sini kita boleh menggunakan npm untuk memasang perisian tengah koa2-cors Kaedah penggunaan adalah sama seperti perisian tengah yang lain.
Di bahagian pelayan, anda boleh menetapkan pengepala respons untuk membenarkan akses merentas domain. Dalam Node.js, anda boleh menggunakan Access-Control-Allow-Origin
untuk menetapkan nama domain atau alamat IP bahagian hadapan yang dibenarkan untuk diakses Contohnya:
res.setHeader("Access-Control-Allow-Origin", "*");
Kod ini bermakna semua sumber permintaan boleh mengakses pelayan. , atau anda boleh menetapkan akses yang dibenarkan secara individu:
res.setHeader("Access-Control-Allow-Origin", "http://www.example.com");
Kod ini menunjukkan bahawa permintaan untuk nama domain www.example.com dibenarkan untuk mengakses pelayan.
Artikel ini membincangkan penyelesaian kepada masalah merentas domain Vue. Apabila menggunakan penyelesaian merentas domain, kita harus mempertimbangkan keseluruhan sistem aplikasi dan memilih kaedah yang sesuai dan bukannya hanya menggunakan satu kaedah untuk menyelesaikannya. Pada masa yang sama, kami harus mengekalkan penekanan kami pada keselamatan dan privasi dan tidak membiarkan resolusi merentas domain membawa risiko keselamatan ke tapak web kami.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah spanning vue. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!