国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

PHP如何解決跨域問題

2019-03-29 09:58:23 5839

客戶端域名和請求數(shù)據(jù)的域名不一致時(shí),直接使用ajax訪問就會(huì)報(bào)錯(cuò)Access-Control-Allow-Origin。一般前端解決的話會(huì)使用jsonp或者cors等手段鉆空子,下面我給你介紹下php簡單粗暴的解決方法。


問題描述

客戶端域名和請求數(shù)據(jù)的域名不一致時(shí),直接使用ajax訪問就會(huì)報(bào)錯(cuò) No ‘Access-Control-Allow-Origin’ allowed access.


<script type="text/javascript">

var dataArr=[]

$.ajax({

    type: "GET",

    url: "http://www.tjdsmy.cn/service/common/obtain",

    success: function(data){

        var allData = JSON.parse(data.location);

    }

});

</script>

解決跨域

一般前端解決的話會(huì)使用 jsonp 或者 cors 等鉆空子進(jìn)行跨域,其實(shí)php只需加上一段代碼就可以跨域了。前端代碼不需要任何修改,而且post方式get方式都管用。


/*

獲取位置

*/

public function obtain()

{

    // 制定允許其他域名訪問

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

    return json_encode(['status' => 1, 'location' => $data);

}

原因分析:

如果瀏覽器請求包括Access-Control-Request-Headers字段,則Access-Control-Allow-Headers字段是必需的。它也是一個(gè)逗號分隔的字符串,表明服務(wù)器支持的所有頭信息字段,不限于瀏覽器在”預(yù)檢”中請求的字段。


問題分析

image.png

然后看了請求頭中確實(shí)包括Access-Control-Request-Headers,然后成功返回接口信息。


提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問題: