前幾天,工作上有一新需求,需要前端web頁面異步調用后臺的Webservice方法返回信息。實現方法有多種,本例采用jQuery+Ajax,完成后,在本地調試了一切ok,但是部署到服務器上以后就出現問題了,后臺服務調用沒有響應,怎么回事?代碼沒怎么改動,唯一修改的地方就是jQuery的ajax方法中的url地址。難道是這里的問題,經過檢查和調試,發現原來是同源策略在作怪,我們知道,JavaScript或jQuery是在Web前端開發中經常使用的動態腳本技術。在JavaScript中,有一個很重要的安全性限制,被稱為“Same- Origin Policy”(同源策略)。這一策略對于JavaScript代碼能夠訪問的頁面內容做了很重要的限制,即JavaScript只能訪問與包含它的文檔或腳本 在同一域名下的內容。不同域名下的腳本不能互相訪問,即便是子域也不行。關于同源策略,讀者可百度更詳細的解釋,這里不再贅述。
但是有時候又不可避免地需要進行跨域操作,這時候“同源策略”就是一個限制了,怎么辦呢?采用JSONP跨域GET請求是一個常用的解決方案,下面我們來看一下JSONP跨域是如何實現的,并探討下JSONP跨域的原理。
這里提到了JSONP,那有人就問了,它同JSON有什么區別不同和區別呢,接下我們就來看看,百度百科有以下說明:
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數據交換語言。易于人閱讀和編寫,同時也易于機器解析和生成(網絡傳輸速度快)。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com