解決 ajax 跨域

浙江周樹人發表於2018-08-14

用兩個伺服器處理一個專案的程式碼,其中一臺伺服器只處理介面請求。

本來PHP可以使用CURL來處理,但是領導不允許使用PHP來處理資料。會影響網站的功能。如果介面端出現問題會導致整個網站或其頁面的崩潰,因此使用前端處理資料。就不會產生這種問題。

本文適用於知道跨域,但是不知道跨域為何物的程式設計師。

 話不多說,PHP程式設計師們,複製貼上,就是幹!

var url = “http://xxxxxxx/index.php/Home/index/index?shop_id=”+ obj +””;
  $.ajax({
  url: url,
  type: “GET”,
  dataType: “jsonp”, //指定伺服器返回的資料型別
  jsonp:`callback`,  //回撥函式   設定回撥函式後端返回必須帶有該函式名,否則獲取不到資料 會一直走 error
  //processData: false,
  success: function (data) {
    console.log(data);
  },
  error: function (data) {
    console.log(“請求資料異常,狀態碼:” + data.status);
  }
  });

 

php 介面程式碼

public function index()

{

header(“Access-Control-Allow-Origin: *”); //允許所有地址訪問 可設定訪問許可權
header(“Access-Control-Allow-Methods:POST,GET”);
header(“Access-Control-Allow-Headers:x-requested-with,content-type”);
header(“Content-type:text/json;charset=utf-8”);

//獲取回撥函式名,接頭暗號
$callback = I(`get.callback`);

獲取引數
$aba = I(`get.shop_id`);
//$aa = explode(`,`,$aba);
$aaa=[];
foreach($aa as $v){
$aaa[][`pageview`]= $this->pageview->where([`shop_id`=>$v])->count(); //資料處理
}

//吐資料
echo $callback.”(“.json_encode($aaa).”)”;
}

 

相關文章