Saya mencoba membuat permintaan HTTP lintas domain ke layanan WCF (yang saya miliki). Saya telah membaca beberapa teknik untuk mengatasi batasan skrip lintas domain. Karena layanan saya harus mengakomodasi permintaan GET dan POST, saya tidak dapat menerapkan beberapa tag skrip dinamis yang srcnya adalah URL permintaan GET. Karena saya bebas membuat perubahan di server, saya mulai mencoba menerapkan solusi yang melibatkan konfigurasi respons server untuk menyertakan header "Access-Control-Allow-Origin" dan permintaan 'preflight' dengan dan OPTIONS request. Saya mendapat ide dari posting ini: Membuat CORS berfungsi
Di sisi server, metode web saya menambahkan 'Access-Control-Allow-Origin: *' ke respons HTTP. Saya dapat melihat bahwa tanggapan menyertakan tajuk ini sekarang. Pertanyaan saya adalah: Bagaimana cara 'melakukan preflight' permintaan (OPTIONS)? Saya menggunakan jQuery.getJSON untuk membuat permintaan GET tetapi browser langsung membatalkan permintaan dengan yang terkenal:
Asal http: // localhost tidak diizinkan oleh Access-Control-Allow-Origin
Apakah ada yang akrab dengan teknik CORS ini? Perubahan apa yang perlu dilakukan pada klien untuk melakukan pra-penerbangan atas permintaan saya?
Terima kasih!
sumber
Access-Control-Allow-Origin: *
//cors and preflight filtering app.all('*', function(req, res, next){.. //preflight needs to return exact request-header res.set('Access-Control-Allow-Headers', req.headers['access-control-request-headers']); if ('OPTIONS' == req.method) return res.send(204);next(); });
Meskipun utas ini berasal dari tahun 2014, masalahnya masih terkini bagi banyak dari kita. Berikut adalah cara saya mengatasinya dalam konteks jQuery 1.12 / PHP 5.6:
Contoh Kode PHP:
Secara khusus, jangan tambahkan
exit;
karena tidak diperlukan penerbangan awal.sumber