Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah JSONP Menyelesaikan Isu Permintaan Silang Asal?
Apabila menghadapi sekatan dasar silang asal, JSONP (JSON dengan Padding) menawarkan penyelesaian yang mudah. Walau bagaimanapun, butirannya boleh mengelirukan untuk difahami pada mulanya. Mari kita demystify proses dengan contoh jQuery, PHP dan JSONP yang mudah.
Pertimbangkan coretan kod yang salah berikut:
// jQuery $.post('http://MySite.com/MyHandler.php', { firstname: 'Jeff' }, function(res) { alert('Your name is ' + res); }); // PHP <?php $fname = $_POST['firstname']; if ($fname == 'Jeff') { echo 'Jeff Hansen'; } ?>
Untuk mendayakan permintaan silang asal, kami akan memanfaatkan JSONP. Begini caranya:
jQuery:
$.getJSON('http://www.write-about-property.com/jsonp.php?callback=?', { firstname: 'Jeff' }, function(res) { alert('Your name is ' + res.fullname); });
PHP:
<?php $fname = $_GET['firstname']; if ($fname == 'Jeff') { header("Content-Type: application/json"); echo $_GET['callback'] . '({' . "'fullname' : 'Jeff Hansen'" . '})'; } ?>
Kunci Mata:
Ya, anda boleh menyimpan HTML dalam respons JSONP. Ubah suai kod PHP seperti berikut:
<?php if ($fname == 'Jeff') { header("Content-Type: application/json"); echo $_GET['callback'] . '({ 'name': 'Jeff Hansen', 'html': '<span>This is some HTML</span>' })'; } ?>
Dalam JavaScript, anda kemudian boleh mengakses HTML menggunakan res.html.
Atas ialah kandungan terperinci Bagaimanakah JSONP Menyelesaikan Isu Permintaan Silang Asal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!