首頁 > 後端開發 > php教程 > JSONP結合jQuery和PHP如何解決跨來源請求問題?

JSONP結合jQuery和PHP如何解決跨來源請求問題?

Barbara Streisand
發布: 2024-12-08 07:13:14
原創
659 人瀏覽過

How Can JSONP with jQuery and PHP Solve Cross-Origin Request Issues?

使用JSONP 的跨來源請求:一個簡單的jQuery 和PHP 範例

在這個範例中,我們將解決跨來源請求的挑戰使用JSONP 的原始請求,這是一種優雅的技術,允許JavaScript 和來自不同來源的Web 伺服器之間進行通訊域。

假設您想要從 jQuery 用戶端向 PHP 伺服器發送跨來源請求並擷取自訂回應。為此,我們將使用 jQuery 的 $.getJSON 方法來啟動 JSONP 請求。

jQuery 腳本:

$.getJSON('http://example.com/jsonp.php?callback=?', 'firstname=Jeff', function(response) {
  alert('Your name is ' + response.fullname);
});
登入後複製

PHP伺服器腳本:

<?php
$firstname = $_GET['firstname'];
if ($firstname == 'Jeff') {
  header('Content-Type: application/json');
  echo $_GET['callback'] . '(' . json_encode(['fullname' => 'Jeff Hansen']) . ')';
}
?>
登入後複製

說明:

當您使用包含「?callback=?」的URL 呼叫$.getJSON 時,jQuery 會自動處理JSONP要求。伺服器端 PHP 腳本使用封裝在函數呼叫中的 JSON 物件進行回應,該函數呼叫與 jQuery 提供的回調相符。在這種情況下,回呼將作為 GET 請求中的第一個參數傳遞。

處理HTML 回應:

如果您想在回應中傳回HTML ,您可以在PHP 腳本中使用函數而不是JSON 物件:

<?php
$firstname = $_GET['firstname'];
if ($firstname == 'Jeff') {
  header('Content-Type: text/html');
  echo '<h1>Welcome, Jeff Hansen!</h1>';
}
?>
登入後複製

並且在jQuery 方面,您可以處理回應如下:

$.getJSON('http://example.com/jsonp.php?callback=?', 'firstname=Jeff', function(response) {
  $('#container').html(response);
});
登入後複製

以上是JSONP結合jQuery和PHP如何解決跨來源請求問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板