摘要:請求服務器數據并規定回調函數為上面代碼通過動態添加元素,向服務器發出請求。另外假設向服務發送的請求是這樣的在這種情況下,是表示請求的請求參數,而是應用程序的回調函數的名稱。清單調用回調服務注意,我們使用作為回調函數名,而非真實的函數名。
同源策略
同源策略(Same origin policy),它是由Netscape提出的一個著名的安全策略。現在所有支持JavaScript的瀏覽器都會使用這個策略。所謂同源是指,域名,協議,端口相同。[2] 同源策略限制從一個源加載的文檔或腳本如何與來自另一個源的資源進行交互。這是一個用于隔離潛在惡意文件的關鍵的安全機制。[3]
如果非同源,共有三種行為受到限制:
Cookie、LocalStorage 和 IndexDB 無法讀取。
DOM 無法獲得。
AJAX請求不能發送。
AJAXAsynchronous JavaScript and XML (Ajax) Ajax 允許在不干擾 Web 應用程序的顯示和行為的情況下在后臺進行數據檢索。使用 XMLHttpRequest 函數獲取數據,它是一種 API,允許客戶端 JavaScript 通過 HTTP 連接到遠程服務器。
對于AJAX以何種格式來交換數據、跨域需求如何解決。一種方案是:用JSON來傳數據,靠JSONP來跨域。
是JSON with Padding的略稱。它是一個非官方的跨域數據交互協議協議,它允許在服務器端集成Script tags返回至客戶端,通過javascript callback的形式實現跨域訪問(這僅僅是JSONP簡單的實現形式)。[4]
JSONP是怎么產生的:通俗的闡釋:
1.Ajax直接請求普通文件存在跨域無權限訪問的問題,無論是靜態頁面、動態網頁、web服務、WCF,只要是跨域請求,一律不準;
2.Web頁面上調用js文件時則不受是否跨域的影響(凡是擁有"src"這個屬性的標簽都擁有跨域的能力,比如