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

資訊專欄INFORMATION COLUMN

node服務(wù)器轉(zhuǎn)發(fā)請(qǐng)求以及node攔截ajax請(qǐng)求

Cruise_Chan / 3335人閱讀

摘要:如何實(shí)現(xiàn)服務(wù)器轉(zhuǎn)發(fā)請(qǐng)求第三方接口的數(shù)據(jù),也是服務(wù)器解決跨域的問題通過轉(zhuǎn)發(fā)接口的數(shù)據(jù),代碼實(shí)例如下跨域問題,當(dāng)你無法操作后臺(tái)是否可以跨域的時(shí)候服務(wù)器轉(zhuǎn)發(fā)請(qǐng)求創(chuàng)建請(qǐng)求監(jiān)聽接受數(shù)據(jù)監(jiān)聽關(guān)閉發(fā)送請(qǐng)求啟動(dòng)服務(wù)之后,就可以通過來訪問數(shù)據(jù)。

如何實(shí)現(xiàn)服務(wù)器轉(zhuǎn)發(fā)請(qǐng)求第三方接口的數(shù)據(jù),也是node服務(wù)器解決跨域的問題
通過localhost轉(zhuǎn)發(fā)接口

https://m.maizuo.com/v4/api/film/now-playing?__t=1523003169298&page=1&count=5

的數(shù)據(jù),代碼實(shí)例如下:
html

  


    
    
    
    
    cross


    


// 跨域問題,當(dāng)你無法操作后臺(tái)是否可以跨域的時(shí)候
var http = require("http");
var https = require("https");
var server = http.createServer();
var fs = require("fs");
server.listen("8080");
var url = require("url");

server.on("request",(request,response)=>{
    var path = url.parse(request.url);
    if(path.pathname == "/") {
        fs.readFile("./html/coress.html",(err,info)=>{
            response.write(info);
            response.end();
        })
    } else if(path.pathname.startsWith("/v4")) { //服務(wù)器轉(zhuǎn)發(fā)請(qǐng)求
     //創(chuàng)建請(qǐng)求
      var request =  https.request({
            hostname:"m.maizuo.com",
            port:"443",
            path:path.path,
            method:"GET"
        },(resp)=>{
            let results = "";
            //監(jiān)聽接受數(shù)據(jù)
            resp.on("data",(dataObj)=>{
                results += dataObj;
            })
         //監(jiān)聽關(guān)閉
            resp.on("end",()=>{
                response.write(results);
                response.end();
            })
        })
        // 發(fā)送請(qǐng)求
        request.end();
    }
})

啟動(dòng)服務(wù)之后,就可以通過:

http://localhost:8080/v4/api/film/now-playing?__t=1523003169298&page=1&count=5

來訪問數(shù)據(jù)。

二,下面來探討一下node服務(wù)器如何攔截ajax請(qǐng)求,注意,頁面引入jquery引入第三方是不存在跨域的問題,只有通過ajax調(diào)用第三方接口請(qǐng)求數(shù)據(jù)的時(shí)候,才會(huì)存在跨域。

我們將html定義如下




    
    
    
    
    
    
    Document


    
這是一個(gè)div
這是一個(gè)div
這是一個(gè)div
這是一個(gè)div
這是一個(gè)div
這是一個(gè)div
這是一個(gè)div
這是一個(gè)div
這是一個(gè)div
這是一個(gè)div
這是一個(gè)div

我們將css文件和js文件一致放到public文件夾下面
我們通過express提供的第三方插件static讀取靜態(tài)的資源文件

server.use("/static",express.static(__dirname+"/public"));

在頁面上定義2個(gè)按鈕

    
    

利用jquery請(qǐng)求按鈕點(diǎn)擊事件觸發(fā)

$(".btn1").on("click",function() {
    $.ajax({
        url:"/api/user/login?name=zs&password=lisi",
        method:"GET",
        success:function(data) {
           console.log("成功");
           console.log(data);
        },
        error:function() {
            console.log("失敗");
        }
    })
})

$(".btn2").on("click",function() {
    $.ajax({
        url:"/api/user/login",
        method:"POST",
        data:{
            name:"sz",
            password:"r4tr4"
        },
        success:function(data) {
           console.log("成功");
           console.log(data);
        },
        error:function() {
            console.log("失敗");
        }
    })
})

在node主入口js文件里面進(jìn)行攔截請(qǐng)求

server.get("/",(req,res)=>{
    fs.readFile("./html/node.html",(err,info)=>{
        if(!err) {
            res.write(info);
            res.end();
        }
    })
})
//服務(wù)器攔截get請(qǐng)求
server.get("/api/user/login",(req,res)=>{
    console.log(req.url);
    res.json({
        status:200,
        message:"登錄成功",
        data:{"getData":"fdsafds","goods":"ffffd","dsf":"343"}
    })
})


//服務(wù)器攔截post請(qǐng)求
server.post("/api/user/login",(req,res)=>{
    console.log(req.url);
    res.json({
        status:200,
        message:"登錄成功",
        data:{"postdata":"fdsafd","goods":"ffffd","dsf":"343"}
    })
})

點(diǎn)擊get按鈕,前端請(qǐng)求的數(shù)據(jù)如下:

點(diǎn)擊post按鈕,前端請(qǐng)求的數(shù)據(jù)如下:

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

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

相關(guān)文章

  • VueCli3.0中集成MockApi

    摘要:缺點(diǎn)需要增加本地的代碼量,以及需要配置實(shí)現(xiàn)攔截優(yōu)點(diǎn)數(shù)據(jù)通過會(huì)更豐富。缺點(diǎn)修改內(nèi)容溝通成本高,跟后端扯皮利用去模擬優(yōu)點(diǎn)可控內(nèi)容以及實(shí)現(xiàn)動(dòng)態(tài)。三本地周邊知識(shí)本地的思想就是利用完成。注意接口的和自己的接口不要沖突。 VueCli3.0中集成MockApi 一:使用場(chǎng)景 哎喲,好煩啊,這個(gè)需求還么結(jié)束就來下一個(gè)需求,程序員不要排期的嗎? 沒辦法啊,資本主義的XX嘴臉啊 來吧,技術(shù)評(píng)審我倆把接口...

    劉玉平 評(píng)論0 收藏0
  • JS HTTP 請(qǐng)求終極解決方案 - fly.js

    摘要:支持請(qǐng)求響應(yīng)攔截器。定位與目標(biāo)的定位是成為請(qǐng)求的終極解決方案。攔截器支持請(qǐng)求響應(yīng)攔截器,可以通過它在請(qǐng)求發(fā)起之前和收到響應(yīng)數(shù)據(jù)之后做一些預(yù)處理。 Fly.js 是一個(gè)功能強(qiáng)大的輕量級(jí)的javascript http請(qǐng)求庫,同時(shí)支持瀏覽器和node環(huán)境,通過適配器,它可以運(yùn)行在任何具有網(wǎng)絡(luò)能力的javascript運(yùn)行環(huán)境;同時(shí)fly.js有一些高級(jí)的玩法如全局ajax攔截、在web a...

    OpenDigg 評(píng)論0 收藏0
  • 九種跨域方式實(shí)現(xiàn)原理(完整版)

    摘要:二跨域解決方案原理利用標(biāo)簽沒有跨域限制的漏洞,網(wǎng)頁可以得到從其他來源動(dòng)態(tài)產(chǎn)生的數(shù)據(jù)。使用反向代理實(shí)現(xiàn)跨域,是最簡單的跨域方式。 前言 前后端數(shù)據(jù)交互經(jīng)常會(huì)碰到請(qǐng)求跨域,什么是跨域,以及有哪幾種跨域方式,這是本文要探討的內(nèi)容。 本文完整的源代碼請(qǐng)猛戳github博客,紙上得來終覺淺,建議動(dòng)手敲敲代碼 一、什么是跨域? 1.什么是同源策略及其限制內(nèi)容? 同源策略是一種約定,它是瀏覽器最核心...

    edgardeng 評(píng)論0 收藏0
  • 九種跨域方式實(shí)現(xiàn)原理(完整版)

    摘要:二跨域解決方案原理利用標(biāo)簽沒有跨域限制的漏洞,網(wǎng)頁可以得到從其他來源動(dòng)態(tài)產(chǎn)生的數(shù)據(jù)。使用反向代理實(shí)現(xiàn)跨域,是最簡單的跨域方式。 前言 前后端數(shù)據(jù)交互經(jīng)常會(huì)碰到請(qǐng)求跨域,什么是跨域,以及有哪幾種跨域方式,這是本文要探討的內(nèi)容。 本文完整的源代碼請(qǐng)猛戳github博客,紙上得來終覺淺,建議動(dòng)手敲敲代碼 一、什么是跨域? 1.什么是同源策略及其限制內(nèi)容? 同源策略是一種約定,它是瀏覽器最核心...

    justCoding 評(píng)論0 收藏0
  • 淺談前端mock

    摘要:引言前端開發(fā)經(jīng)常需要等待后端的接口,嚴(yán)重影響了開發(fā)效率,我們一般采用方式來避免這個(gè)問題。可能會(huì)涉及到門技術(shù),分別是服務(wù)端技術(shù)隨機(jī)生成特定格式數(shù)據(jù)的技術(shù)請(qǐng)求轉(zhuǎn)發(fā)請(qǐng)求攔截。 引言 前端開發(fā)經(jīng)常需要等待后端的接口,嚴(yán)重影響了開發(fā)效率,我們一般采用mock方式來避免這個(gè)問題。本人參考了大量文章,結(jié)合自己的經(jīng)驗(yàn),給出自己在mock上的一些理解。 1. 原理 何為mock,我認(rèn)為mock主要就是通...

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

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

0條評(píng)論

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