久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

ajax 設(shè)置Access

 bing_xue 2017-11-28
  ajax跨域訪問是一個老問題了,,解決方法很多,比較常用的是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)建一個隱藏的iframe來實現(xiàn),與ajax上傳圖片原理一樣,,但這樣會比較麻煩,。

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

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

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

  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');

  就可以實現(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è)置多個域名允許訪問,,這里需要用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);
?>
----------------------------------------------------------
  源碼下載地址:點擊查看

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多