//第一種方法使用jsonp的方式
<?php第二種方式增加headr頭header('content-type:text/html;charset=utf-8');
$arr = array
( "user" => $_get['loginuser'],
"pass" => $_get['loginpass'],
"name" => 'response');
echo
$_get['jsoncallback'] . "(".json_encode($arr).")";
假設我們頁面或者應用已在 上了,而我們打算從 請求提取資料。一般情況下,如果我們直接使用 ajax 來請求將會失敗,瀏覽器也會返回「源不匹配」的錯誤,"跨域"也就以此由來。
利用 cors, 只需新增乙個標頭,就可以允許來自 的請求,下圖是我在php中的 hander() 設定,「*」號表示允許任何域向我們的服務端提交請求:
也可以設定指定的網域名稱,如網域名稱 ,那麼就允許來自這個網域名稱的請求:
當前我設定的header為「*」,任意乙個請求過來之後服務端我們都可以進行處理&響應,那麼在除錯工具中可以看到其頭資訊設定,其中見紅框中有一項資訊是「access-control-allow-origin:*」,表示我們已經啟用cors,如下圖。
ps:由於demo都在我廠的兩台測試機間完成,外網也不能訪問,所以在這就不提供demo了,見諒
簡單的乙個header設定,乙個支援跨域&post請求的server就完成了:)
當然,如果沒有開啟cors必定失敗的啦,如下圖:
解決AJAX跨域問題
解決ajax跨域問題 跨域不一定會有跨域問題。因為跨域問題是瀏覽器對於ajax請求的一種安全限制 乙個頁面發起的ajax請求,只能是於當前頁同網域名稱的路徑,這能有效的阻止跨站攻擊。因此 跨域問題 是針對ajax的一種限制。雖然原理比較複雜 import org.springframework.co...
ajax解決跨域問題的常用方法
前端ajax請求時,使用 jsonp 方式訪問介面。原理為 瀏覽器允許有 src 屬性的標籤跨域請求,因此通過後台返回 script 文字包裹 json 資料的方式,實現跨域訪問。請求 request headers 和 response headers 示例 服務端寫法 test method r...
跨域問題詳解 ajax跨域解決
跨域問題的產出,根本原因在於瀏覽器的同源策略,什麼又是同源策略呢,官方解釋 同源策略限制了從同乙個源載入的文件或指令碼如何與來自另乙個源的資源進行互動。這是乙個用於隔離潛在惡意檔案的重要安全機制。同源的定義 如果兩個頁面的協議,埠 如果有指定 和網域名稱都相同,則兩個頁面具有相同的源。可以跨域讀取其...