ajax跨域post請求,如何實現呢

jaryle發表於2017-06-23

我們都知道,ajax不能做跨域請求,我們首先想到的是jsonp,但是問題來了,它只是支援get請求,如果要傳輸資料量比較大,get請求就不能滿足我們的需求了,我們需要使用ajax的post跨域請求,如何實現呢,我們可以通過cors。

CORS的原理:

   cors是一種跨域訪問機制,可以讓ajax實現跨域訪問,CORS 允許一個域上的網路應用向另一個域提交跨域 AJAX 請求。實現此功能非常簡單,我們只需要向伺服器傳送一個響應標頭即可(ie8以上才支援)


 

設定,“*”號表示允許任何域向我們的服務端提交請求,也可以設定成指定的域名。

  • 剛剛說到的相容性。CORS是W3C中一項較新的方案,所以部分瀏覽器還沒有對其進行支援或者完美支援,詳情可移至 http://www.w3.org/TR/cors/
  • 安全問題。CORS提供了一種跨域請求方案,但沒有為安全訪問提供足夠的保障機制,如果你需要資訊的絕對安全,不要依賴CORS當中的許可權制度,應當使用更多其它的措施來保障,比如OAuth2。
自認為的cors使用場景:

cors在移動終端支援的不錯,可以考慮在移動端全面嘗試;PC上有不相容和沒有完美支援,所以小心踩坑。當然瀏覽器相容就是個偽命題,說不準某個瀏覽器的某個版本就完美相容了,說不準就有點小坑,尼瑪傷不起!

jsonp是get形式,承載的資訊量有限,所以資訊量較大時CORS是不二選擇;

配合新的JSAPI(fileapi、xhr2等)一起使用,實現強大的新體驗功能。



相關文章