http請求代理proxy-ajax


今天把項目中的反向代理腳本程序抽成了一個插件,通過配置文件配置代理的http請求,這樣使用起來比較方便,每位開發成員都可以用自己配置的代理調試代碼。也可以用來直接做http代理,你甚至都不用Charles或者fiddler,直接開啟proxy-ajax,然后手機上設置代理就可以了。

git

proxy-ajax: https://github.com/chalecao/proxy-ajax
歡迎大家試用,給我點顆星星哈。

用法:

npm install proxy-ajax -g -------you can specify the config file path and port--- proxy-ajax ./.proxy-ajax.config -p 80 ------- you can use the default config path and port--- proxy-ajax 

默認配置文件: ./.proxy-ajax.config.js  默認代理端口: 80

配置文件示例:

.proxy-ajax.config.js file:
--------------------------
export default { "port": 8889, //"httpsPort": 8890, //"cert": "", //https cert //"key": "", //https key "target-mtop": "https://x.x.x.x/", "target-other": "http://baidu.com", "proxy": [{ "host": ["localhost:8889", "api.baidu.com"], "rule": [{ "path": "getBaidu", "routeTo": "target-mtop" }], "otherRouteTo": "target-other" }] } 

如果你不想寫很多的配置文件,你可以把代理的配置寫到其他的配置文件里,需要添加proxyConfig屬性就可以了,示例如下:

xxxx.config.js file:
--------------------------
var data = require("./data") export default { ..... ..... proxyConfig:{ "port": 8889, // "httpsPort": 8890, "target-page": "http://127.0.0.1:3000/", "target-mtop": "https://x.x.x.x/", "target-static": "http://127.0.0.1:8000", "proxy": [{ "path": "/h5/", "target": "target-mtop" },{ "path": "/h5/jianribimai", "data": "./src/demo/data/new3.js" },{ "path": "/h5/test", "data": JSON.stringify(data) }] } .... }

ajax請求跨域帶cookie

這里順帶介紹一下這個知識點,跨域請求常用的方案是CORS,經常會遇到跨域請求帶cookie的情況,默認ajax跨域請求是不帶cookie的。如果需要帶cookie,需要這樣寫:

原生ajax請求方式:
 
var xhr = new XMLHttpRequest(); xhr.open("POST", "http://xxxx.com/demo/b/index.php", true); xhr.withCredentials = true; //支持跨域發送cookies xhr.send();   jquery為例: $.ajax({ type: "POST", url: "http://xxx.com/api/test", dataType: 'jsonp', xhrFields: { withCredentials: true //配置跨域帶cookie }, crossDomain: true, success:function(){ }, error:function(){ } })

 

服務端CORS配置:

1
2
header(“Access-Control-Allow-Credentials: true”); //允許跨域帶cookie
header(“Access-Control-Allow-Origin: http://www.xxx.com”); //允許跨域請求的域名

反向代理與正向代理

正向代理,只用於代理內部網絡對Internet的連接請求,客戶機必須指定代理服務器,並將本來要直接發送到Web服務器上的http請求發送到代理服務器中。此時正向代理表現的像一個客戶端,請求資源,返回數據。

反向代理(Reverse Proxy)方式是指以代理服務器來接受Internet上的連接請求,然后將請求轉發給內部網絡上的服務器;並將從服務器上得到的結果返回給Internet上請求連接的客戶端,此時代理服務器對外就表現為一個服務器,代理請求。

謝謝!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM