色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

php ajax跨域

江奕云1年前7瀏覽0評論

隨著互聯網的發展,跨域的問題越來越突出,今天我們要講的就是php ajax跨域的問題。跨域是指一個請求從一個域名或端口去請求另一個域名或端口的資源,在Web中,跨域的限制是瀏覽器的安全策略導致的,主要是為了防止出現XSS、CSRF等攻擊。

比如一個頁面使用了ajax請求遠程的PHP腳本,但是PHP腳本與當前頁面不在同一個域名下,此時瀏覽器就會拒絕這個請求,這時候就需要用到跨域解決技術。

//php腳本中設置跨域
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");

其中,Access-Control-Allow-Origin用來允許哪些域名可以訪問這個服務端資源,*表示允許所有域名訪問;Access-Control-Allow-Headers表示允許哪些請求頭可以被客戶端使用,這里通過逐個聲明了Origin、X-Requested-With、Content-Type、Accept這幾個常用請求頭。

還有一種常見的跨域解決技術是JSONP(JSON with Padding),通過script標簽的src屬性去請求一個返回JSON格式的JavaScript代碼,這個JavaScript被當做函數來執行并傳入參數,這樣就可以解決跨域問題。

//PHP腳本中生成JSONP返回數據
$data = array('name' =>'Tom', 'age' =>21);
$json = json_encode($data);
echo $_GET['jsoncallback'].'('.$json.')';

其中,$_GET['jsoncallback']表示請求參數中傳遞的回調函數名。

還有一種跨域解決技術是CORS(Cross-Origin Resource Sharing),CORS要比JSONP更加強大,更加靈活。CORS的核心思想是服務器通過一些頭信息來告訴瀏覽器需要允許哪些域名的請求訪問哪些資源。

// PHP代碼中使用CORS跨域
header('Access-Control-Allow-Origin: http://www.b.com');
header('Access-Control-Allow-Methods:POST,GET');
header('Access-Control-Allow-Headers:x-requested-with,content-type');

其中,Access-Control-Allow-Origin用來允許哪些域名可以訪問這個服務端資源,Access-Control-Allow-Methods用來設置允許的請求方式,Access-Control-Allow-Headers用來設置允許的請求頭。

總之,在PHP中與AJAX進行跨域交互時,我們可以采用三種方式來解決跨域問題,即設置響應頭、使用JSONP解決跨域、使用CORS解決跨域,應該結合自己的業務需求來選擇適合的解決方案。