JSONP的工作原理是什么?
對于開發(fā)人員來說,離不開API的開發(fā)和調(diào)用,我們在日常開發(fā)中,如果調(diào)用了第三方的API,而且此第三方API是以json數(shù)據(jù)格式返回時,默認(rèn)是無法直接調(diào)用的(比如AJAX調(diào)用),因為會涉及到跨域問題。如何解決JSON跨域調(diào)用呢?那就得用到JSONP!
JSON和JSONP的區(qū)別最簡單的理解:JSON是一種數(shù)據(jù)格式,而JSONP是一種數(shù)據(jù)調(diào)用的。還有一種不嚴(yán)謹(jǐn)?shù)睦斫猓簬allback的JSON是JSONP。
由于瀏覽器的同源策略,上網(wǎng)頁是無法和服務(wù)器直接溝通的,JSONP就是用來解決瀏覽器跨域數(shù)據(jù)訪問的。
JSONP的原理分析上面說到了,所有主流瀏覽器出于安全因素考慮都有同源策略,而HTML中的ltscriptgt標(biāo)簽則不受此限制(ltscriptgt標(biāo)簽沒有跨域限制)!所以我們可以利用這個特性來和第三方進(jìn)行數(shù)據(jù)通訊。
JSONP整個工作流程大概如下:
1、調(diào)用方頁面上使用script標(biāo)簽引用第三方API地址;
2、第三方響應(yīng)的數(shù)據(jù)是JSON數(shù)據(jù)的包裝,格式如下:
callback({name:susan
java開發(fā)是如何解決ajax跨域問題的?
兩個解決方案
1.使用jsonp技術(shù)
2.響應(yīng)頭攜帶安全信息
第一種jsop這種技術(shù)方案太老,第二種服務(wù)端對cors處理,第三種使用nginx做轉(zhuǎn)發(fā)