00:00
在完成静态组件之后,接下来开始完成数据搜索的一个功能,主要的功能主要集中在这个search这个组件里面,因为下面的列表只是做一个数据的一个展示,那我们看看主要有什么功能,我们在这里输入这个关键字,然后点击搜索,能获取到输入框的关键字,进行电影的一个搜索。所以首先我们给这个按钮去绑定一个这个点击的一个事件,然后点击这个按钮的时候,能拿到这个输入框的这个数据,找一下我们代码。找到search这个组件。然后。找到这个按钮,诶,给他一个安可雷克事件。This点。Get movies,好,那定义一下这个方法。这个方法,哎,那我们点击这个按钮,它会触发这个方法,在这个方法里面主要做两件事情,哎,一是。
01:07
获取。输入框的关键字啊,就是我们要搜索的关键字,那第二个事情就是。发送请求。获取电影数据。先看第一件事情,获取输入框的关键字,也就是拿到这个input里面我们输入的这个内容。之前我们在讲表单数据这块的时候说过啊,那可以通过这个非受控组件,哎,使用这个ref的形式去获取,诶输入框里面的数据,也可以使用数控组件来通过状态去获取这个。Input里面说的这个数据,那这里我们就简单的写,我们使用ref啊。Refer是不是也有三种形式,哎,字符串形式,回调函数形式,还有create refer,那我们简单的就使用一下这个回调函数形式,它有一个参数是当前的,哎,这个节点,那我把当前的这个节点。
02:04
给到这个类的一个属性,这个属性我们自己定义啊。Keyword啊,Element它是一个节点啊。然后等于谁等于这个参数啊,因为这个参数是表示当前的这个节点嘛,我把这个节点,然后给到这次的这个属性,然后之后在我点击这个搜索啊,触发这个点击事件,在这个方法里面,我就可以通过this的这个属性,哎,去获取到输入框的这个值来试一下啊,那我先log一下啊C点。Keyword。在浏览器中看一下,把这个。打开。刷新来,我们输入啊,一个电影,一个输入一个人生,然后搜索好是不是可以拿到这个关键字,拿到我们输入这个内容,那这第一步我们就完成了,对吧?好,但是这样写呢,我们只是conslo,我们要把它给到一个呃变量对不对来。
03:02
我们使用解构的形式啊。Keyword等于。z.keyword啊,我们从这个属性里面去解构出来,这个value是Q的啊value,当然你要是想给它取别名呢,就是说呃,我想把这个Y就叫KO,你可以加个这个冒号。然后是你要取的一个别名啊K。Word这样的话。因为它这个里面它是有什么属性,它是有这个Y6属性,对吧,我们解构的时候只能从这个里面去解构啊,这个VALUE6属性,但是有时候你如果不想用这个变量,你想让它,呃,就是说用其他的变量名字可以在后面就是解构的同时进行重命名啊,那我们看一下这个是不是一样的啊。来刷新一下。再输入一个一是不是拿到了啊,这是关于哎,这个结构的时候一个小技巧啊。
04:05
好,那这个关键字已经拿到了,接下来就开始去发送请求,获取电影数据啊,我们使用这个AX去发送请求,注意这个,呃,零二这个是我新建的一个啊,新创建的一个raft的一个项目,所以还没有这个AX,那我要先安装一下啊,我把这个先结束掉。Ad啊A。哎,注意你这个添加的时候呢,要在是在这个目录里面,在你的这个项目里面啊。回撤。添加完成之后,哎,在这里。Input导入这个AX。From。接下来完成第二步,发送请求,获取这个电影的数据,那发送请求使用这个A,我们常见的请求有get和post,一般我们在获取数据呢,使用的这个get方式居多,嗯,一般在这个进行表单提交的时候会用到这个post,当然具体是get还是post,你要取决于就是说你要请求的这个数据,这个地址,它的这个所支持的一个请求的一个方式啊,那我们先把这个基础的这个结构写出来,首先是一个URL,对吧?好,接着它有一个啊,点then then里面呢,我们有一个response。
05:26
哎,可以拿到相应的一个结果。哎,我在这里输出一下啊。请求成功了啊。成功,那成功的这个数据呢,是response.data。接着哎,如果失败的话,还会有一个error。点漏啊失败。失败的话,我把失败的原因也给输出出来。一般我们在发送一个请求需要考虑的啊,有三个地方,一个是你请求的这个方式对吧,啊白色的,再一个就是你请求的这个地址URL。
06:10
还有一个要考虑的就是你要传递的这个参数,那比如我们做这个搜索,你肯定要把我们搜索的这个关键字传给这个地址是吧,所以还要考虑第三个事情就是。哎,参数promised,那接下来我们一个看,哎,方法我们知道是这个啊。啊get啊,应该是get,因为具体的话还是要看你请求这个地址,它支持的这个请求的这个方法对不对,好那permits哎,这个呢,我们一般如果你去使用这个guide去进行一些查询的话,这个PS一般是附到这个UR后面,用使用这种问号的形式去传插,对吧?好,主要是看一下这个地址,那地址呢已经给大家,哎准备好了,是在这里啊就是这个地址,从这个豆瓣电影我们。找到了一个API,这个API呢,可以去进行电影的一个搜索,那我们来复制一下啊。在浏览器中先看一看这个API能不能请求啊,那这个地址呢,前面是豆瓣电影的这个网站对吧?然后这个是它的这个uri,诶注意看这个后面这个问号后面是一个Q对吧?Q后面就是我们搜索关键字,那比如我们搜索啊,这个搜索这个中国就是包含中国关键字的这些电影,诶是不是给我们的有中国机长,中国合伙人对吧?好,所以这个API。
07:22
就可以让我们去用。来,我们就复制一下这个API。放到这里面,这个URL就是它对吧,那这个。我就删掉后面这个那问号,然后QQ就是我们要传的参数Q后面就是我们要查询的这个电影的这个关键字,那当然就是从这里我们会获取到这个Q2的,是不是来在这里写上啊。我用这个。呃,反引号,反引号的话可以直接使用。这样的方式去使用这个变量,要不然你还得用连接字符串对不对。来像这个。地址啊,带上这个参数来使用get的方式去发送一个请求,如果成的话会给我们输出数据,如果失败的话,我们返回错误原因,那接下来我们来看一看。
08:08
在这里啊,刷新下线。啊,没有运行。来。Start。在这里我进行搜索啊。搜索这个中国。这有一个错误啊,大家对这个错误应该就不陌生,你看cos对吧,同源策略。对不对,嗯,是明显跨越了,为什么呢?我们这个是3000端口,而且是local host这个域名,你要请求谁的数据,你要请求的是这个豆瓣啊,这个地址的这个数据。哎,咱不说这个端口号了,你看你域名都不一样对吧,你local host的,你去请求这个豆瓣吧,人家不让你请求,人家说我你必须是我豆瓣这个地址才能请求我的电影来请求我的这个数据,对不对,它是做了这个椭圆策略的一个。
09:02
一个限制,所以我们这里搜索是拿不到这个数据的。也就是说哎,跨域了啊,哎之前我们在学跨域的时候也说过有好几种跨域的解决方案,对不对,包括他们这个后端啊,配置这个courses,或者说我们使用这个J森P对吧,或者说诶我们使用这个代理。是不是都可以,哎,其实想想我们前几节课讲的这个为脚售加配置代理,是不是可以解决这个快的一个问题,那既然我3000我去请求你豆瓣啊,这个地址你不让我请求,那么我可不可给你找一个中间人,哎,给大家画一下图啊。现在哎,我是这里啊,那我要请求这里的一个数据。也就是我本地啊。老好死。3000,我要去请求谁请求这个豆瓣?啊,请求这个豆瓣点com请求他的这个数据,那明显你看域名都不一样,端口更不一样了,对吧,他是八零,端口是3000,那我直接哎给他拿发请求拿数据,他不让我访问是吧,他有个同源策略就跨越了。
10:06
所以怎么办?我们前几个是不是学过,可以给这个脚趾甲配代理,那我找一个中间人,哎中间人呢,他呢,他也是,哎在这个3000端口上。就是和我本地啊,是同一个域名啊,同一个端口,哎,也在这个3000端口哈,这时候我如果想要向他去请求这个数据。是不是就可以,诶我发送。就是说我拿数据的话,我让3000我是给他。对吧,然后由这个中间人,我们这个代理服务器去向灯牌去发送请求,去获取数据,是不是可以,那他这个数据呢,给到他之后,诶,我们再让他返回回来。他俩是同源的,就不会存在跨越的问题,是不是啊,这个问题呢,我再说一下,为什么如果我直接拿这个客户端去请求,他就会出现跨域,而我通过这个代理就不会产生,哎,这是因为。注意啊。
11:00
我客户端这里用的是什么阿贾克斯。啊,这种技术你去发送的这个请求明白了吧?啊,它会有一个同源策略的一个限制。但是我一般我这个代理服务器的话,它使用的是什么,它使用的是请求的一个转发。哎,转发,所以它不存在这个同源策略的一个限制,明白了没有。啊,而且前面我们也给大家讲过如何为教程啊配代理来。接着我们来配置一下啊。这个相关掉啊,找到我们上节课学的配置这个代理啊,配置代理呢,你可以简单的是在这个呃。Package杰森啊,在这个最后去配置,是不是还有一种方式是在这个src下面去建一个文件,哎,就建一个。这样的一个文件,那我直接复制过来啊。放到二的这个src里面。OK,接下来,呃,这里改一改啊。
12:03
嗯,因为我们只要一个就可以了,这里改一改,这个就不要了。这个地址是不是要改,哎,也就是我们在请求这个的时候呢,我们把它转发给谁,转发给这个豆瓣这个网址是不是啊,我们把这个复制一下啊。复制到这里。好,这样的话,也就是说当我们开启了这个代理之后,我再次去发起请求的时候,就把我的请求哎转发给他。这样的话拿到数据之后。就可以了,使用了,来这里就不能写这个地址了,我要请求谁,是不是请求。Local host3000本地的这个3000,想一想刚才我们画的那个图对不对,哎,再给大家看一下这个图,你是不是。这里是我们这个客户端的3000,那这里是不是啊,这个服务端的这个3000,那这里是不是豆瓣,是不是这么回事啊,再给大家写一下。
13:00
3000。这里是不是也是我们代理服务器的这个3000对吧,这个是豆瓣是不是豆瓣。对不对。啊,是这么一个关系啊,我向他发起请求,然后他去转发给他,他拿着数据回来,再我再经过我的这个,哎,返回返回给他是这么一个流程啊,所以。那这个转发地址我们要配成这个,哎豆瓣,那这个我们就就是请求的这个地址就要换成本地的这个地址了,哎接着呢,你这么做还不行,为什么?因为注意一下我们这个,呃,代理的这个规则,他会匹配谁匹配这个API1前缀对不对,那是不是这里你还要再带一个API前缀才可以,这样的话它匹配到,诶如果你发的这个请求是请求到,哎,我本地的这个代理服务器,并且是请求的是apie前缀,我是不是就会应用这个规则,那应用这个规则我是不是就会,哎把它转发到这个地址,而且在转发之前我会把apie给它替换成空,也就是相当于是把它给替成空。
14:02
来,我们测试一下,看能不能拿到数据啊。嗯,刷新。输入一个人名。搜索是不是拿到数据上这个就不存在跨域问题了,明白了吧?哎,通过这个例子也是对我们,呃,前面那两节课讲的就是配置这个代理啊,不以小售假,配置代理的一个啊,实力一个演示啊。啊,这已经拿到这个数据了,对吧,都是人民相关的一些电影。好,接着呢,呃,我们再来考虑一个问题啊。就是说啊,就是说豆瓣的这个电影的它这个API,哎,我们看浏览器吧,就是它这个API啊。当你就说在短时间内请求的次数比较多的时候。它有一个API的一个限制,当你请求比较多的时候,它就会不让你请求了,就会出现问题。明白了吧?好,那怎么去避免这个问题呢?也有办法啊。
15:01
这个时候呢,我其实给大家准备了一个我们自己写的一个服务器啊,这个服务器呢啊,做了一件什么事情,也就是说这个服务器他去帮我们去请求啊,这个豆瓣电影的一个数据,然后那我们自己写的那个服务器呢,还是用诺德写的啊。那个当这个接口就失效的时候,我们还可以请求一个,你看看到现在已经就是加了这个限制了,已经访问不了了,是吧?啊所以。为了避免这种情况怎么办?我们做了一个就是自己写了一个服务器,在这个自己写的服务器中呢,啊,他去帮我们请求这个服务器。去获取搜索的这个数据,当然当这个API不能用的时候呢,我们还有另外一个啊,这个地址能返回一些模拟的一个数据。好,呃,这个服务器在哪呢?在这呢。这个啊,给大家放到了这里。清楚了吧?啊,也就是这个是我们自己去写的一个服务器,它去帮我们去请求这个数据啊,我先画流程图,大家把图搞明白之后就知道怎么回事了啊K线在这个这个接口已经失效了啊又好了,它是在就是说这个单位时间内做这个限制。
16:09
好,就在这吧,给大家画图啊。接着啊。这个是。客户端,哎,CT,然后是3000端口是吧。好,那中间。这个是代理服务器啊。好,这个是豆瓣电影,就是我们要拿数据的这个地址啊,豆瓣。com。也就是说我们如果直接拿对吧,他不给我们数据,会出现这个跨域,哎,同源策略影响拿不到对不对,好那怎么办呢?我们配了一个这个代理服务器。啊,代理。啊,代理的3000端口的一个服务器是这样的方式去获取数据,我们请求代理服务器,然后代理服务器去访问数据,拿到之后再回来之后再把数据转换回来,哎,这是我们现在已经完成的一个内容,但是有时候会出现什么情况,就是刚才我给大家演示了,当我们频繁去请求这个API,这个API它会做一些限制,不让请求的没有数据的,这时候怎么办?这时候我们自己去准备了一个服务器啊。
17:18
那自己准备一个服务器呢?这个服务器干什么?他去请求豆瓣。哎,如果当这个多半的API不能用的时候呢,我们还有其他的一个地址去可以返回一些模拟的一些数据,然后把这个我们自己定义的这个服务器也给写上啊,画到这里啊。这是我们自己去创建的一个服务器。他的名字叫server。啊,端口号呢,可能是8000。清楚了吧,好,那就是这么回事了,接着我们再来捋一捋,这么多啊,服务器之间啊,电脑之间,它是怎么一个协同的一个过程啊,同样的。呃,还是说我们因为配置了这个代理,所以我们这个3000端口,你去发起这个请求的话,肯定请求的是代理服务器,对不对?好,但是这时候代理服务器我们就不让他直接代理到豆瓣了,而是代理到谁代理到我们自己写的这个服务器。
18:09
清楚了吧,而我们自己写的这个服务器,他去干什么,他再去请求豆瓣这个数据。明白了吧,好,那请求到这个数据之后,哎,再这么原路的返回,原路的返回你看着比较麻烦,那其实我们配置好之后呢,是速度是很快的,都是一些自动的一些呃东西的,不用你去做太多东西啊啊是这么一个流程,这是在豆瓣电影能用的一个情况下。啊,那如果当这个API不能用了,就会就像刚才我刷新的太快了,它出现这种就是空数据,就不让你用了这个API,这时候怎么办?这时候我们可以去请求这个代理服务器啊,代理服务器请求我们自己的这个服务器,那我们自己的这个服务器呢,准备了一些模拟的一个数据啊,就是写死的一些假数据啊,直接就返回给我们,不影响我们的功能的使用。明白了吧,啊好啊,这个颜色呢,给大家。
19:03
换成这个蓝色吧,大家好区分。来这里蓝色。就是这两条线,哎,如果把这个图大家理解透之后,接着来看一看我们这个server的这个代码,也是我们自己定义的这个辐线这个代码。在这个桌面啊。就是它,然后主要就是这个文件和我们之前讲那个配置代理的时候内容差不多啊,我们来打开。使用suble text啊,推荐大家电脑都装一个这个suble text啊,因为你在编辑一些文件的时候是比较好用的啊,它只有几兆大小,是一个轻量型的一个编辑器啊,尤其是我们在改一些配置文件啊,啊是比较方便的,你总不可能说你为了改一个配置文件,你就打开一个IDE,那多麻烦对不对?哎,所以推荐大家每个电脑都装一个这个subleme。
20:00
啊,当然你使用这个notepad加加等其他的一些轻量型的编辑器啊,我说的轻量型大概只有只有几兆大小,然后嗯,可以去编辑一些文件这种的啊好,接着看一看我们写的这个服务端的这个代码啊,还是一样,我们使用的这个Co号框架,然后嗯,这里呢。定义了一个来定义了一个请求,使用get请求,请求我这个search,它这里面你看做了什么。他又发起了一个请求啊,他使用这个cloud IQ啊,这个模块又发起了一个请求,去请求豆瓣看到吗?并且带了这个搜索的这个参数,也就是说。就像我刚才画的那个图,诶,我们3000端口客户端请求他自己开启的代理服务器,是不是,那代理服务器转发到谁转发到我们这个,假如是8000端口吧,啊,你看这里我们监听的是8000端口是吧?那转发的这个8000端口好之后呢,如果我们请求这个API的话,这个地址它会有干什么,又帮我们去请求豆瓣的这个数据,哎,就会像我刚才画的那图嘛,就是多中转的一层啊,并且带上了我们的搜索参数是不是好,如果拿到数据之后呢,就会返回给我们,诶这是我们能正常请求到这个API数据的情况下,那假如,哎,就像我演示的,哎,我刷新的特别快,API做的限制,不让我拿数据了怎么办?这里给大家还提供了一个。
21:15
啊,另外一个啊,二这个地址它返回的就是你看模都是模拟数据,是不是我提前把这个数据写好的。是不是这样的?啊,然后最后把这些模拟数据返回了,好这个时候哎,我们启动这个服务的时候,还会告诉我们,如果你请求这个啊,真实的电影数据啊,地址是这个啊,请求这个模拟数据啊,电影是这个,地址是这个。来接下来我们来运行一下我们自己写的这个啊服务端啊,那怎么运行呢?在上一节课呢,因为我使用的是啊,不是上节课,是之前讲脚手架代理的时候,我使用的是这个HB的这个编辑器,它里面带了一个终端,我是在那里面启动的,但这个轻量型的编辑器没有对吧?没有怎么办?没有我们要自己去打开一个终端。嗯,来。
22:00
我打开一个终端啊,如果你是Windows电脑的话呢,你是打开的是一个CMD啊,但是打开这个CMD啊,或者说这个,呃,终端之后呢。一定要注意你的这个CMD,或者这个终端当前所在的这个目录啊。你要进到什么呢?进到我们服务,我们自己写的这个服务端的这个目录里面去启动这个服务才可以来,现在我们就想办法进到这个里面啊,那我的是在这个桌面啊,所以我直接就是啊CD。哎,我加目录下的这个桌面,如果你是Windows的话,你可能要CD的这个啊C盘,然后冒号user等等等等啊,自己去找这个路径啊。那我的是,嗯,Movie gone server,好,我是进到这里面啊。进到这个目录之后,哎,之前给大家说过。我们写的这个服务端,它其实就是一个呃,GS文件,是不是,那直接使用node去启动这个GS文件就可以了啊好,启动之后告诉我们服务器启动成功访问啊,这个豆瓣电影真实的这个数据请求这个地址啊,8000端口的啊这个地址,那如果访问模拟数据来请求这个地址,我们来请求下看看,看看能不能用啊。
23:08
找到浏览器来,在这里。诶,是一个空。啊,没有加搜索啊,空的话是因为没有加搜索。来接着看一看我们写的这个服务端,我们要加什么,你要加上这个。啊,这个Q啊这个关键字。进行一个搜索,你看这里也告诉给大家写了是吧,那这里给大家写了查询的一个参数Q啊。好,这个后面不用管,这个是我从这个请求里面去解构出来,我我们这个书的这个关键字嘛,解构出来之后是进行这个真实的一个API的请求去查询数据啊。刚才这个你看你刷新是空是吧,因为没有加搜索条件,我加一个问号Q等于嗯,就说个赛吧。好,是不是你像这些啊,在一起在云端等等包含在的就搜到了,注意啊,这个你看是不是我们请求的自己建的这个服务器。
24:03
啊,我们请求这个自己的这个地址呢,啊,带来这个查询参数,但是在这个里面呢。啊,他又去请求豆瓣对吧,并且带上了查询的参数。是不是这样的,嗯,好,就这一点,那如果当这个API不能使用的时候。嗯,我们来试一下啊,在这里我频繁我去刷新快一点,我经刷新次数比较多的话,就不能用了,是不是,你看这时候当它不能用的时候,我们还有一个模拟数据,可以用来访问一下模拟数据。诶是不是一样的,对不对,是不是也有数据返回,哎,当然和这个啊,这个真实的还不行啊,还不让访问。注意啊,你看这个你即使在这也不行,因为你在这都不行了,它是基于这个IP做的,你这个API请求的一个限制啊,这是我们模拟的数据,我们再等一下这个应该就可以了。啊行吧,不等他了,那其实呢,这个字段都是一样的,只不过比它我把一些没有用的,一些用不到的这个字段给去掉了,所以保留了我们一定会用到的这几个。
25:08
清楚吧,好。啊,已经可以了啊啊对比一下是不是都一样的,就少了一些字段是不是。哎,这个就是我们自己写的这个服务器。接下来去改一下哎的项目。改什么呢?那这个转发目标就不能转发到这个豆瓣了啊,我们直接转发到谁呢,转发到。这个8000端口是不是。因为8000端口这个地址呢,它会帮我们去,呃,去请求多瓣的数据的,是不是就转发到一个8000啊。8000,然后。这里啊,这个地址在变。这个就不是请求他了啊,看一下请求谁是请求啊search。然后问号Q对吧?来这里改一下啊,API你要留着啊。一直到问号Q这个API得留着,因为我们这个啊,代理的规则就是去匹配它嘛,是不是。
26:07
哎,这个得留着,然后是search Mo,然后是关键字,那我们来尝试一下。啊,因为改了这个配置啊。啊,再次强调,一旦你改了这个脚手架相关的配置,一定要重启才可以啊。你改了这些GS无所谓啊,但是改了这些啊,配置类的要重启。好,重启完成刷新。再来搜索一下啊,搜索还搜索这个在。是不是拿到这个数据了,嗯。看是不是都有。啊,这个呃,流程呢,再给大家啊,稍微总结一下吧,因为我们是经过了比较多的一个一个层次啊。首先是我们的一个客户端,我就不写字了,我就口述啊,那这个是我们代理服务器啊,3000端口代理服务器,那这个呢,是我们自己写的8000的这个服务器,那这个是豆瓣的这个呃,数据API的这个数据,对吧?那实际上我们是经过这么一个请求,哎,请求到自己代理服器,因为只有你请求同端口同域名的这个服务器,它不产生这个跨域是不是,哎,那代理服务器呢,我们代理了8000对吧,8000呢,又发起了请求去拿这个豆瓣的这个数据。
27:21
对不对,好,这个数据拿回来之后就嗯原路返回嘛,对不对,是不是就最终得到我们这里控制台显示这个数据。对吧,好。接着我们再来试一试啊,试一试。如果我们就假定不能访问的情况下啊,我们把它什么是把这个加个二就可以了。对不对,来再来试一下啊。刷新。来搜索一个人。是不是拿到了,你看这个速度快的很啊,因为这个是我们模拟的这个数据,你看速度真的很快,你看是不是好。
28:00
这是假如我们这个API不能访问的一个情况下,我们请求,嗯。另外一个接口模拟数据,那我们看把它给改回来吧,其实你正常的就是说你一分钟内请求个三五次,就不会出现这种情况的。啊,但是你一分钟就是说就是说几秒内吧,三秒内请求个十来次的话,他可能就会给你做限制。哎,清楚吧。好,我们还改回来了,还请求这个真实的这个呃,API数据啊。啊,这是人相关的一些数据,接着呢。再来看一看啊,我们来看一下啊。这里。你看一下啊,看一个什么呢。这里我们是不是3000端口,也如我们自己的这个客户端项目是在3000对吧,那你这里发送这个API请求,哎,因为我们请求的代理服务器,代理服务器也是3000是不是,那这种情况下就是说你自己域名,你请求这个,呃,自己的这个域名下载一个什么什么的话,就同域名,你看同端口同域名。是不是同端口同域名对吧,这个客户端也是同端口同域名,这时候你可以把这个省略,直接写这个根就可以了。
29:03
清楚了吧,啊,这是一个小技巧啊,这时候我们再来试一下,去搜索搜索一个这个A。刷新一下啊。来搜索一个A。是不是找到了啊,这都是这个。A相关的。那这节课我们主要就是说,嗯,把这个代理服务器给配置了一下,然后把这个输入框的这个关键字啊,以及这个请求。给处理完了啊,一定要注意你请求的地址是什么,你转发到的地址是什么啊,一开始我们是直接转发给了豆瓣对吧,但有时候请求快了会发现他会啊,不返回我们数据,那这时候我们又加了一层我们自己的服务器,我们自己的服务器呢,不仅可以去请求豆瓣去拿数据,还可以去返回一些模拟数据,那这时候我们的这个转发就转发到了自己的这个服务器。而我们这里客户端它是运行在3000端口,而我们要发的这个请求也是我们代理服务器呢,它也是开启的3000端口,所以啊,我们就把这个域名还有这个端口就给省略了啊。
30:07
这节课就先说到这里。
我来说两句