php - Mengapa laravel mengubah hala dua kali?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-06-20 10:07:24
0
1
1178

Pada masa ini kami sedang membina halaman web untuk log masuk WeChat, menggunakan antara muka yang disediakan oleh WeChat Apabila pengguna mengakses indeks/indeks, mereka akan melompat ke URL yang ditentukan oleh WeChat:

function index(){
    $wxService = \App::make('App\Http\Service\WXActivityService');
    $target_url = route('Index/Activity');
    $redirect_url = $wxService->getWxRedirectUrl($target_url);
    return redirect()->intended($redirect_url);
}

Kod ini sangat mudah. ​​Ia hanya menyambung url mengikut format url yang ditentukan oleh WeChat, dan kemudian mengubah hala ke url ini ($target_url) WeChat akan mengubah hala semula ke halaman $target_url yang saya tetapkan
Tetapi sekarang Masalahnya ialah selepas WeChat mengubah hala kembali ke halaman saya dengan kod, pelayan saya akan menerima permintaan yang sama dua kali, yang sangat pelik. Bolehkah anda beritahu saya apa yang sedang berlaku masalah dengan orientasi? Fungsi header tidak boleh digunakan untuk mengubah hala, yang benar-benar mengecewakan... Saya merekodkan log dan mendapati kaedah indeks hanya dilaksanakan sekali, tetapi $target_url telah diakses dua kali...

曾经蜡笔没有小新
曾经蜡笔没有小新

membalas semua(1)
滿天的星座

Semak Kaedah Permintaan bagi kedua-dua permintaan:
Oleh kerana ia adalah permintaan merentas domain, pelanggan menghantar permintaan OPTIONS terlebih dahulu
Permintaan Dimulai ialah mekanisme pengesahan pelayan yang telus dalam CORS. Permintaan prapenerbangan terlebih dahulu perlu menghantar pengepala permintaan HTTP OPTIONS ke sumber nama domain lain Tujuannya adalah untuk menentukan sama ada permintaan sebenar yang dihantar adalah selamat.

Kemungkinan besar ini adalah masalahnya
Saya kini menggunakan axios sebagai perpustakaan permintaan rangkaian saya, dan saya juga menghadapi masalah ini Apabila mengakses domain silang, permintaan OPTIONS akan dihantar terlebih dahulu untuk menentukan sama ada permintaan seterusnya selamat dan boleh diterima

Pendekatan semasa saya adalah untuk menyemak sama ada ia adalah permintaan OPTIONS dalam fail kemasukan index.php, dan jika ya, kembalikan status
Kod khusus

if ($_SERVER['REQUEST_METHOD']=='OPTIONS') {
    header("Access-Control-Allow-Origin: *");
    header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization");
    header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,OPTIONS,PATCH');
    return;
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan