淺談PHP的跨域問題

來源:互聯網
上載者:User
這篇文章介紹的內容是關於PHP的跨域問題,現在分享給大家,有需要的朋友可以參考一下

先說一個最簡單的例子吧

先上服務端的代碼

public function kuayu(){    header("Access-Control-Allow-Origin: http://baidu.com"); //說明是允許百度訪問你的伺服器    return json(['status'=>0,'msg'=>1231]);}
Access-Control-Allow-Origin:加上你請求該伺服器的網域名稱


如果要允許所有的伺服器訪問的話就只需要一個*,例如Access-Control-Allow-Origin:*

最後上用戶端的代碼

$.ajax({    url:'http://xxx.com/kuayu',這裡填寫你所訪問的連結    async:false,       success:function(res){       console.log(res);    }})
最後就完成了簡單的跨域請求

下面再簡單說一下jsonp跨域吧(由於博主理論知識不紮實,只能貼一下代碼了,哈哈)

先上服務端的代碼

public function kuayu(){    return input('get.callback')."(".json_encode(['status'=>0,'msg'=>1231]).")";}

用戶端的代碼

$.ajax({    url:'http://www.xx.cn/kuayu',    dataType:'jsonp',固定寫法    jsonp:'callback',固定寫法    success:function(res){        console.log(res);    }})

這個有個坑,就是服務端返回資料的格式一定要是如下

jQuery111307920822086038766_1523501176244({"status":0,"msg":1231})

前面的那一大串是系統產生的,也可以是自訂的

所以服務端的返回資料一定要是 $_GET['callback'].(資料) 這樣的格式哦

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.