成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

php后端控制可跨域的域名,允許圖片跨域上傳

Dean / 3000人閱讀

摘要:跨域問題經常需要面對,前端需要做的比較直接要么選擇異步提交,或者,要么表單提交基本可以搞定大部分跨域問題,但問題也比較明顯,只能通過方式提交并且是通過把參數(shù)拼到上提交請求的但是所有瀏覽器有長度限制,不同瀏覽器長度限制不一樣當出現(xiàn)要提交大段落

跨域問題經常需要面對,前端需要做的比較直接
要么選擇ajax異步提交,XML或者jsonp,要么表單提交

jsonp基本可以搞定大部分跨域問題,但問題也比較明顯,只能通過get方式提交
并且jsonp是通過把參數(shù)拼到URL上提交請求的
但是所有瀏覽器有URL長度限制,不同瀏覽器長度限制不一樣
當出現(xiàn)要提交大段落內容的時候,比如說文章,用jsonp的話超出長度只能分割提交
很麻煩,而且說到底對安全性有些影響
而且axiox現(xiàn)在也不支持jsonp了,雖然有方式解決

尤其是圖片類的資源上傳,無法很好的用jsonp之類的方法實現(xiàn)

需要圖片上傳跨域的場景

當然可以不跨域最好不跨域,但是目前大部分項目都已經前后端分離了
靜態(tài)資源和接口分別是不同的域名或者二級域名,這樣就涉及到了跨域
如果是資源上傳,跨域的時候需要后端Access-Control-Allow-Origin和當前請求的Origin一樣,不能設置為*

php解決方法

如果是傳統(tǒng)數(shù)據請求,那后端直接將Access-Control-Allow-Origin設置為*就好

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

但圖片之類的資源上傳Origin需要跟Access-Control-Allow-Origin的值一樣
如果設置Access-Control-Allow-Origin跟當前的Origin一樣的話就限制死了能上傳的域名只有一個
要有其他域名需要調用這個接口的話就會被禁止

所以最好的方法就是限定能夠調用這個接口的域名列表,也提高了一定的安全性

做法就是先獲取當前請求的Origin,如果在允許訪問的域名列表里
就將Access-Control-Allow-Origin的值設置為當前請求的Origin

$originList = [
    "http://127.0.0.1",
    "http://www.linkvall.cn",
    "http://mobile.linkvall.cn",
];
if(in_array($_SERVER["HTTP_ORIGIN"], $originList)){
    header("Access-Control-Allow-Origin:".$_SERVER["HTTP_ORIGIN"]);
    header("Access-Control-Allow-Credentials: true");
    header("Access-Control-Allow-Headers:x-requested-with,content-type");
    header("Access-Control-Allow-Methods: POST,GET,OPTIONS");
}

這樣就能控制可以跨域的域名了,圖片類資源就能像同域一樣開心的上傳上來了
post方式跨域提交同樣適用

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/29619.html

相關文章

  • WEB之常見工作問題總結(1-20)

    摘要:第三種,使用格式,即在中請求參數(shù)處理跨域問題當然請求方式只能是。最后發(fā)現(xiàn)有網友說版本不穩(wěn)定引起的,于是把百度地圖回退到了,結果還真是可以了。請問在移動端頁面中播放優(yōu)酷里面的視頻,怎樣實現(xiàn) 1.web掃碼登錄怎么實現(xiàn),思路 步驟 WEB平臺 手機 第1步 生成二維碼 第2步 (ajax監(jiān)控后臺) 掃碼 第3步 ...

    genedna 評論0 收藏0
  • js跨域問題及常用的兩種解決方案

    摘要:類似這樣而在客戶端我們只需要定義一個預定好的回調函數(shù)即可。處理跨域請求得到的數(shù)據其中的是我們在客戶端定義好的在數(shù)據請求成功后要執(zhí)行的回調函數(shù)。 跨域產生的原因 跨域是由瀏覽器的同源策略引起的,即不同源(協(xié)議,域名,端口中其中有一個不同)的js是不能讀取對方的資源的。當要網站中的js要請求其他網站的數(shù)據時就會產生跨域問題,就像下面這樣,瀏覽器會報錯。 showImg(https://se...

    gyl_coder 評論0 收藏0
  • AJAX原理與CORS跨域

    摘要:同源策略指的是當前頁面和目標協(xié)議域名和端口均相同。發(fā)出請求的頁面所在域。響應的頭部信息在后端處理,不在此處講解。該事件會在數(shù)據接收期間不斷觸發(fā),但間隔不確定。服務器確認允許之后,才發(fā)起實際的請求。 ajax作為前端開發(fā)必需的基礎能力之一,你可能會使用它,但并不一定懂得其原理,以及更深入的服務器通信相關的知識。在最近兩天的整理過程中,看了大量的文章,發(fā)現(xiàn)自己的后端能力已經限制自己在網絡通...

    jeyhan 評論0 收藏0
  • 前端跨域方法論

    摘要:說明是否允許通訊同一域名允許同一域名下的不同文件夾允許不同端口號不允許不同協(xié)議不允許不同域名不允許主域相同,子域不同不允許跨域解決方案由于瀏覽器同源策略是允許標簽這樣的跨域資源嵌套的,所以標簽的資源不受同源策略的限制。 前言 本著學習和總結的態(tài)度寫的技術輸出,文中有任何錯誤和問題,請大家指出。更多的技術輸出可以查看我的 github博客。 整理了一些前端的學習資源,希望能夠幫助到有需要...

    leejan97 評論0 收藏0
  • 徹底弄懂跨域問題

    摘要:瀏覽器同源策略我們?yōu)楹我芯靠缬騿栴}因為瀏覽器的同源策略規(guī)定某域下的客戶端在沒明確授權的情況下,不能讀寫另一個域的資源。 跨域,老生常談的問題 簡述 作為一只前端菜鳥,跨域方面只懂得JSONP和CORS,并未曾深入了解。但隨著春招越來越近,就算是菜鳥也要猛振翅膀。近幾日仔細研究了跨域問題,寫下這篇文章,希望對開發(fā)者們有所幫助。在讀本文前,希望您對以下知識略有了解。 瀏覽器同源策略 n...

    CoorChice 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<