小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

ajax 設(shè)置Access

 bing_xue 2017-11-28
  ajax跨域訪問是一個(gè)老問題了,解決方法很多,比較常用的是JSONP方法,JSONP方法是一種非官方方法,而且這種方法只支持GET方式,不如POST方式安全。

  即使使用jquery的jsonp方法,type設(shè)為POST,也會自動變?yōu)镚ET。

  官方問題說明:

  “script”: Evaluates the response as JavaScript and returns it as plain text. Disables caching by appending a query string parameter, “_=[TIMESTAMP]“, to the URL unless the cache option is set to true.Note: This will turn POSTs into GETs for remote-domain requests.

  如果跨域使用POST方式,可以使用創(chuàng)建一個(gè)隱藏的iframe來實(shí)現(xiàn),與ajax上傳圖片原理一樣,但這樣會比較麻煩。

  因此,通過設(shè)置Access-Control-Allow-Origin來實(shí)現(xiàn)跨域訪問比較簡單。

  例如:客戶端的域名是www.,而請求的域名是www.

  如果直接使用ajax訪問,會有以下錯(cuò)誤

  XMLHttpRequest cannot load http://www./server.php. No 'Access-Control-Allow-Origin' header is present on the requested resource.Origin 'http://www.' is therefore not allowed access.

  在被請求的Response header中加入

  // 指定允許其他域名訪問header('Access-Control-Allow-Origin:*');

  // 響應(yīng)類型

  header('Access-Control-Allow-Methods:POST');

  // 響應(yīng)頭設(shè)置

  header('Access-Control-Allow-Headers:x-requested-with,content-type');

  就可以實(shí)現(xiàn)ajax POST跨域訪問了。

  代碼如下:

  client.html 路徑:http://www./client.html
-----------------------------------------------------




跨域測試



---------------------------------------------------------
  server.php 路徑:http://www./server.php
---------------------------------------------------------
$ret = array(
'name' => isset($_POST['name'])? $_POST['name'] : '',
'gender' => isset($_POST['gender'])? $_POST['gender'] : ''
);

  header('content-type:application:json;charset=utf8');

  header('Access-Control-Allow-Origin:*');

  header('Access-Control-Allow-Methods:POST');

  header('Access-Control-Allow-Headers:x-requested-with,content-type');

  echo json_encode($ret);

  ?>
--------------------------------------------------------
  Access-Control-Allow-Origin:* 表示允許任何域名跨域訪問

  如果需要指定某域名才允許跨域訪問,只需把Access-Control-Allow-Origin:*改為Access-Control-Allow-Origin:允許的域名

  例如:header('Access-Control-Allow-Origin:http://www.');

  如果需要設(shè)置多個(gè)域名允許訪問,這里需要用php處理一下

  例如允許 www. 與 www. 可以跨域訪問

  server.php 修改為
-----------------------------------------------------------
$ret = array(
'name' => isset($_POST['name'])? $_POST['name'] : '',
'gender' => isset($_POST['gender'])? $_POST['gender'] : ''
);

header('content-type:application:json;charset=utf8');

$origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : '';

$allow_origin = array(
'http://www.',
'http://www.'
);

if(in_array($origin, $allow_origin)){
header('Access-Control-Allow-Origin:'.$origin);
header('Access-Control-Allow-Methods:POST');
header('Access-Control-Allow-Headers:x-requested-with,content-type');
}

echo json_encode($ret);
?>
----------------------------------------------------------
  源碼下載地址:點(diǎn)擊查看

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多