国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

其實(shí)我只想設(shè)置客戶端實(shí)現(xiàn)跨域請(qǐng)求

Lucky_Boy / 2117人閱讀

摘要:本地也可以輕松模擬跨域請(qǐng)求,以及解決跨域請(qǐng)求的方式輕松實(shí)現(xiàn)本地服務(wù)器跨域請(qǐng)求請(qǐng)求接口,其實(shí)它們都在相同的本地服務(wù)器目錄下以訪問頁面,可是這個(gè)頁面調(diào)用的接口地址是與域名不同,也即跨域解決跨域請(qǐng)求服務(wù)器端設(shè)置這樣就能輕松實(shí)現(xiàn)跨域請(qǐng)求

本地也可以輕松模擬跨域請(qǐng)求,以及解決跨域請(qǐng)求的方式
1、輕松實(shí)現(xiàn)本地服務(wù)器跨域請(qǐng)求

web.html請(qǐng)求接口json.json,其實(shí)它們都在相同的本地服務(wù)器目錄下

localhost/cors/web.html訪問頁面,可是這個(gè)頁面調(diào)用的接口地址是http://127.0.0.1/cors/json.json

var url = "http://127.0.0.1/cors/json.json"
fetch(url)
    .then(res => res.json())
    .then(resJson => console.log(resJson))

localhost127.0.0.1域名不同,也即跨域

2、解決跨域請(qǐng)求(服務(wù)器端設(shè)置Access-Control-Allow-Origin:*
//js
var url = "http://127.0.0.1/cors/php.php"
fetch(url)
    .then(res => res.json())
    .then(resJson => console.log(resJson))
    
//php
header("Access-Control-Allow-Origin:*");
echo "{"name": "lofayo"}";

(這樣就能輕松實(shí)現(xiàn)跨域請(qǐng)求)

3、解決跨域請(qǐng)求(服務(wù)器端設(shè)置Access-Control-Allow-Origin:http://localhost

(服務(wù)器端設(shè)置響應(yīng)頭 Access-Control-Allow-origin: *,允許了任何來源origin的訪問,其實(shí)這個(gè)地方可以設(shè)置和請(qǐng)求頭相同的origin的值,只是這樣設(shè)置太麻煩了,本地測(cè)試需要服務(wù)端設(shè)置一次,如果本地測(cè)試同一個(gè)接口由多人請(qǐng)求,還要設(shè)置多次,正式上線了還要設(shè)置一次,太麻煩了)

//js  http://localhost/cors/web.html
var url = "http://127.0.0.1/cors/php.php"
fetch(url)
    .then(res => res.json())
    .then(resJson => console.log(resJson))

//發(fā)起該請(qǐng)求,會(huì)在請(qǐng)求頭里自動(dòng)設(shè)置origin字段值為當(dāng)前頁面,如:origin:http://localhost


//php
//服務(wù)器端設(shè)置和origin相同的值
header("Access-Control-Allow-Origin:localhost");
echo "{"name": "lofayo"}";

(雖然能實(shí)現(xiàn),一個(gè)接口從測(cè)試到上線需要服務(wù)器端多次設(shè)置,太麻煩了)

4、跨域請(qǐng)求jsonp(理解jsonp原理)

jsonp的實(shí)現(xiàn)分三步走:

1、本地js定義好回調(diào)函數(shù)

2、創(chuàng)建可以跨域請(qǐng)求的script標(biāo)簽,其實(shí)src即為帶了回調(diào)函數(shù)查詢參數(shù)的接口url

3、在php的接口文件里獲取回調(diào)函數(shù),并返回由回調(diào)函數(shù)包裹數(shù)據(jù)的整體

//1、定義好接收數(shù)據(jù)的函數(shù)


//2、通過script標(biāo)簽的src實(shí)現(xiàn)跨域,只是這個(gè)url帶有查詢參數(shù)(回調(diào)函數(shù))



//php文件接收查詢參數(shù),并返回由回調(diào)函數(shù)包裹數(shù)據(jù)的整體
$requstName = $_GET["callback"];
$data = "{"name": "lofayo"}";
echo $requstName . "(" . $data . ")";
5、跨域請(qǐng)求自我暢想(設(shè)置請(qǐng)求頭里origin字段值和服務(wù)器相同)

所有上述跨域請(qǐng)求,都需要服務(wù)器端的參與設(shè)置,叨擾別人的事終究還是麻煩了些。想實(shí)現(xiàn)的是,即使服務(wù)器端不允許跨域,但是僅僅在客戶端設(shè)置依然能夠?qū)崿F(xiàn)的跨域請(qǐng)求

比如:接口數(shù)據(jù)在http://127.0.0.1/cors/php.php

訪問頁面地址為:http://localhost/cors/web.html,該頁面請(qǐng)求的接口,瀏覽器會(huì)在請(qǐng)求頭里默認(rèn)設(shè)置:

Origin:http://localhost
Referer:http://localhost/cors/web.html

既然如此,我只需要手動(dòng)模擬origin字段值,把他設(shè)置為和服務(wù)器相同的域不就可以了,設(shè)置origin字段值:

Origin:http://127.0.0.1

可事與愿違,在http請(qǐng)求里設(shè)置不了該字段的值

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/94929.html

相關(guān)文章

  • 20K前端大佬面試(關(guān)于如何回答ajax跨域問題)

    摘要:在接觸前端開發(fā)起,跨域這個(gè)詞就一直以很高的頻率在我們學(xué)習(xí)工作中重復(fù)出現(xiàn),最近在工作中遇到了跨域的相關(guān)問題,這里我把它總結(jié)記錄一下。 在接觸前端開發(fā)起,跨域這個(gè)詞就一直以很高的頻率在我們學(xué)習(xí)工作中重復(fù)出現(xiàn),最近在工作中遇到了跨域的相關(guān)問題,這里我把它總結(jié)記錄一下。關(guān)于跨域,有N種類型,現(xiàn)在我只專注于ajax請(qǐng)求跨域(ajax跨域只是屬于瀏覽器同源策略中的一部分,其它的這里不做介紹),內(nèi)容...

    Yangyang 評(píng)論0 收藏0
  • 爬取博客園首頁數(shù)據(jù)進(jìn)行數(shù)據(jù)分析

    摘要:目標(biāo)選取了博客園,爬取了首頁的前頁文章,但是數(shù)據(jù)放在那一直沒去分析。為了避免對(duì)博客園造成壓力,爬蟲代碼不公開。注數(shù)據(jù)來源是年月日至月的博客園首頁文章。誰是博客園最愛的用戶最愛的用戶,在這里是按文章上首頁的數(shù)量來判斷的。 前言 之前折騰了一小段時(shí)間scrapy,覺得使用起來異常簡(jiǎn)單,然后打算練練手。目標(biāo)選取了博客園,爬取了首頁的前200頁文章,但是數(shù)據(jù)放在那一直沒去分析。趁著現(xiàn)在有閑心,...

    zilu 評(píng)論0 收藏0
  • 賺錢:停更是不可能停的,但是有時(shí)候你不得不停。

    摘要:,在互聯(lián)網(wǎng)上賺錢,沒有所謂的工作日,沒有所謂的休息日。任何一個(gè)項(xiàng)目沒有賺到錢之前,即使做不到,是一個(gè)必須的狀態(tài)。但是很多人舍不得,或者不懂得如何拼時(shí)間和精力。最典型的一個(gè)人,他一直認(rèn)為們之所以不能成功,是因?yàn)樗麄儾粔蚺Α? ...

    Cristic 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<