CORS(跨域資源共享)可以在瀏覽器中更安全地使用JavaScript進(jìn)行跨域數(shù)據(jù)傳輸。在 jQuery 中實(shí)現(xiàn)跨域請(qǐng)求非常容易,只需要在 AJAX 請(qǐng)求中添加一些額外的選項(xiàng)即可。
下面是一個(gè)示例,已經(jīng)啟用了 CORS,啟用后可以從其他域的服務(wù)器上獲取數(shù)據(jù)。
$.ajax({ url: "https://www.example.com/data.json", type: "GET", crossDomain: true, dataType: "json", success: function(data) { console.log(data); }, error: function(xhr, status, error) { console.log("Error: " + error); } });
注意,必須將 crossDomain 選項(xiàng)設(shè)置為 true,以便瀏覽器知道這是一個(gè)跨域請(qǐng)求。還應(yīng)指定 dataType 選項(xiàng),以便 jQuery 將響應(yīng)作為 JSON 解析。
如果需要為跨域請(qǐng)求添加自定義標(biāo)頭,可以使用 beforeSend 回調(diào)函數(shù)。示例代碼如下:
$.ajax({ url: "https://www.example.com/data.json", type: "GET", crossDomain: true, dataType: "json", beforeSend: function(xhr) { xhr.setRequestHeader("Authorization", "Bearer xxxxxxxx"); }, success: function(data) { console.log(data); }, error: function(xhr, status, error) { console.log("Error: " + error); } });
在 beforeSend 回調(diào)函數(shù)中,我們可以通過(guò) xhr 對(duì)象設(shè)置需要添加的自定義標(biāo)頭,這里添加了一個(gè)名為 Authorization 的標(biāo)頭。在使用 AJAX 跨域請(qǐng)求時(shí),請(qǐng)始終確保始終使用安全且最新的 jQuery 版本。