首頁 >web前端 >js教程 >怎樣實作js支援post請求跨域

怎樣實作js支援post請求跨域

php中世界最好的语言
php中世界最好的语言原創
2018-05-07 17:05:121549瀏覽

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

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中文網其它相關文章!

推薦閱讀:

this指向與call、apply使用


webpack myproject建置專案時ip無法存取應如何處理

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

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