這幾天在跨域問題上遇到了一些難題,需要調(diào)用遠(yuǎn)程數(shù)據(jù)庫的JSON,采用JSONP后產(chǎn)生Uncaught SyntaxError: Unexpected token :報錯。

報錯
遠(yuǎn)程服務(wù)器采用ASP.NET開發(fā),分析原因是遠(yuǎn)程服務(wù)器不具備返回JSONP格式的函數(shù),返回的是JSON格式數(shù)據(jù)。依靠本地服務(wù)轉(zhuǎn)發(fā)或修改Chrome配置修改可實現(xiàn)功能。
總結(jié)瀏覽器跨域的解決方式有以下幾種:
1.jsonp 需要目標(biāo)服務(wù)器配合一個callback函數(shù)。
2.window.name+iframe 需要目標(biāo)服務(wù)器響應(yīng)window.name。
3.window.location.hash+iframe 同樣需要目標(biāo)服務(wù)器作處理。
4.html5的 postMessage+ifrme 這個也是需要目標(biāo)服務(wù)器或者說是目標(biāo)頁面寫一個postMessage,主要側(cè)重于前端通訊。
5.CORS需要服務(wù)器設(shè)置header :Access-Control-Allow-Origin。
6.nginx反向代理這個方法一般很少有人提及,但是他可以不用目標(biāo)服務(wù)器配合,不過需要你搭建一個中轉(zhuǎn)nginx服務(wù)器,用于轉(zhuǎn)發(fā)請求。