ajax post跨域解決方案

概述

  • CORS能作什麼:程序員

     正常使用AJAX會須要正常考慮跨域問題,因此偉大的程序員們又折騰出了一系列跨域問題的解決方案,如JSONP、flash、ifame、xhr2等等。跨域

     本文介紹的CORS就是一套AJAX跨域問題的解決方案。瀏覽器

 

  •  CORS的原理:服務器

     CORS定義一種跨域訪問的機制,可讓AJAX實現跨域訪問。CORS 容許一個域上的網絡應用向另外一個域提交跨域 AJAX 請求。實現此功能很是簡單,只需由服務器發送一個響應標頭便可。網絡

 

  • CORS瀏覽器支持狀況以下圖:工具

CORS啓航

 

  假設咱們頁面或者應用已在 http://www.test1.com 上了,而咱們打算從 http://www.test2.com 請求提取數據。通常狀況下,若是咱們直接使用 AJAX 來請求將會失敗,瀏覽器也會返回「源不匹配」的錯誤,"跨域"也就以此由來。測試

  利用 CORS,http://www.test2.com 只需添加一個標頭,就能夠容許來自 http://www.test1.com 的請求,下圖是我在PHP中的 hander() 設置,「*」號表示容許任何域向咱們的服務端提交請求spa

     

  也能夠設置指定的域名,如域名 http://www.test2.com ,那麼就容許來自這個域名的請求調試

     

     

  當前我設置的header爲「*」,任意一個請求過來以後服務端咱們均可以進行處理&響應,那麼在調試工具中能夠看到其頭信息設置,其中見紅框中有一項信息是「Access-Control-Allow-Origin:* 」,表示咱們已經啓用CORS,以下圖。server

  PS:因爲demo都在我廠的兩臺測試機間完成,外網也不能訪問,因此在這就不提供demo了,見諒

     

   簡單的一個header設置,一個支持跨域&POST請求的server就完成了:)

 

  固然,若是沒有開啓CORS一定失敗的啦,以下圖:

  

相關文章
相關標籤/搜索