Sekatan perkongsian sumber silang (CORS) boleh menghalang permintaan AJAX untuk mendapatkan semula data daripada berbeza domain. Artikel ini mengkaji pendekatan alternatif untuk mengatasi pengehadan CORS.
Disebabkan langkah keselamatan, penyemak imbas menguatkuasakan dasar asal yang sama, yang mengehadkan permintaan AJAX dalam domain yang sama. Permintaan kepada domain, subdomain, port atau protokol yang berbeza biasanya disekat.
Menggunakan JSONP untuk mendapatkan semula data merentas domain memerlukan pelayan memberikan respons dalam format skrip. Jika data yang dijangkakan ialah HTML, menggunakan JSONP tidak sesuai.
1. Alternatif Proksi CORS:
2. Melangkau Sekatan Asal Sama:
CORS Di Mana-mana:
$.ajaxPrefilter( function (options) { if (options.crossDomain && jQuery.support.cors) { var http = (window.location.protocol === 'http:' ? 'http:' : 'https:'); options.url = http + '//cors-anywhere.herokuapp.com/' + options.url; } });
Apa jua Asal:
$.ajaxSetup({ scriptCharset: "utf-8", contentType: "application/json; charset=utf-8" }); $.getJSON('http://whateverorigin.org/get?url=' + encodeURIComponent('http://google.com') + '&callback=?', function (data) { console.log(" > " , data); $("#viewer").html(data.contents); });
Pendekatan alternatif ini membenarkan permintaan AJAX merentas domain apabila permintaan langsung dihadkan oleh CORS. Memilih penyelesaian terbaik bergantung pada kes penggunaan khusus dan pertimbangan keselamatan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memintas Sekatan CORS untuk Permintaan AJAX Merentas Domain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!