首頁 >web前端 >js教程 >支援post請求的js跨域方法匯總

支援post請求的js跨域方法匯總

php中世界最好的语言
php中世界最好的语言原創
2018-05-23 14:54:431229瀏覽

這次帶給大家支援post請求的js跨域方法匯總,支援post請求js跨域的注意事項有哪些,下面就是實戰案例,一起來看一下。

JSONP實作跨域

常用的jquery實作跨域呼叫

$.ajax({
  url: "http://127.0.0.1/~chenjiebin/mycode/php/crossdomain/index.php",
  dataType: "jsonp",
  jsonp: "callback",
  context: document.body,
  success: function(data) {
    console.log(data);
  }
});

這個呼叫實際上的實作原理是
在網頁中建構一個script標籤,將src設定為對應的url,並增加上對應的callback參數,形如下格式:

##reee js程式碼:

jQuery211018970995225637144_1465350372062({"id":"1","name":"tom"})

#當瀏覽器取得到該區段js後來就會執行這個函數,從而實現回呼ajax請求時設定的success方法。

jsonp實作的缺點

了解了原理後,就知道jsonp實作的跨域方式不支援post請求,只能支援get請求。但是如果需要支援post請求該怎麼辦呢?下面談談伺服器端設定的方式。

服務端設定支援跨域

主要是Access-Control-Allow-Origin頭參數,該參數用來指定允許哪個來源的域請求。服務端程式碼如下:

$data   = json_encode(array("id" => "1", "name" => "tom"));
$callback = $_GET["callback"];
echo $callback . "(" . $data . ")";

對應的js程式碼:

// 表示支持所有来源的域进行请求
// 实际在操作过程中可以设置为指定域
header('Access-Control-Allow-Origin:*');
$data = json_encode(array("id" => "1", "name" => "tom"));
echo $data;

可以支援post請求。

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

有哪些js使用方式(附程式碼)


如何動態引入JS檔案

以上是支援post請求的js跨域方法匯總的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn