Rumah > hujung hadapan web > uni-app > teks badan

Bagaimana untuk menyelesaikan masalah bahawa pratonton penyemak imbas mudah alih uniapp tidak dapat mengakses antara muka

PHPz
Lepaskan: 2023-04-17 11:40:40
asal
2013 orang telah melayarinya

Apabila menggunakan uniapp untuk membangunkan aplikasi, ia sering berlaku bahawa pratonton penyemak imbas mudah alih tidak dapat mengakses antara muka Ini disebabkan oleh beberapa ciri uniapp itu sendiri. Artikel ini akan membincangkan sebab, penyelesaian, dsb.

Fenomena masalah

Apabila menggunakan uniapp untuk membangunkan aplikasi, kami biasanya pratonton projek dalam masa nyata melalui editor HBuilderX, supaya kami boleh melihat kesan antara muka dan nyahpepijat kod dengan mudah. Walau bagaimanapun, selepas menggunakan aplikasi ke pelayan, apabila mengakses aplikasi dalam penyemak imbas mudah alih, anda akan mendapati halaman itu boleh dipaparkan seperti biasa, tetapi 404 atau mesej ralat lain dikembalikan apabila mengakses antara muka.

Punca masalah

Semasa proses pembangunan Uni-app, anda boleh menggunakan kaedah uni.request() untuk membuat permintaan antara muka Kaedah ini akan menambah https://unidemo.dcloud.net.cn secara automatik sebagai domain yang diminta nama secara lalai, dan kami secara setempat Semasa pratonton, gunakan localhost atau 127.0.0.1. Pada masa ini, jika anda mengakses antara muka dalam penyemak imbas mudah alih, nama domain yang diminta oleh antara muka adalah berbeza daripada nama domain aplikasi sebenar, menyebabkan permintaan antara muka gagal.

Penyelesaian

Pilihan 1: Konfigurasikan merentas domain

Konfigurasikan permintaan merentas domain pada pelayan untuk membenarkan akses kepada antara muka di bawah nama domain termasuk localhost atau 127.0.0.1 . Dalam pelayan Nginx, kita boleh mencapainya melalui konfigurasi berikut:

location / {
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS, HEAD';
    add_header Access-Control-Allow-Headers 'Authorization, X-Requested-With, Content-Type, Accept';
    proxy_pass http://your_domain:your_port;
}
Salin selepas log masuk

Pilihan 2: Ubah suai nama domain permintaan

Dalam kaedah request uniapp, anda boleh menambah Pilihan baseURL , digunakan untuk menetapkan nama domain yang diminta. Kami boleh menetapkan baseURL secara dinamik dengan menilai persekitaran berjalan untuk menyelesaikan masalah tidak dapat mengakses antara muka semasa pratonton.

let baseURL = '';
if(process.env.NODE_ENV === 'development'){
    baseURL = 'http://localhost:3000';
}else{
    baseURL = 'http://your_domain:your_port';
}
uni.request({
    url: '/api',
    method: 'POST',
    baseURL: baseURL,
    //...
})
Salin selepas log masuk

Ringkasan

Apabila membangun menggunakan uniapp, perbezaan antara nama domain yang diminta semasa pratonton dan nama domain yang digunakan sebenar mungkin menyebabkan permintaan antara muka gagal. Masalah ini boleh diselesaikan dengan mengkonfigurasi merentas domain atau menetapkan nama domain yang diminta secara dinamik.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah bahawa pratonton penyemak imbas mudah alih uniapp tidak dapat mengakses antara muka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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