Loader无法设置referer

本文探讨了使用Loader加载服务器图片遇到的问题,当服务器对referer有限制时,Loader因无法设置referer导致加载失败。文章提到AS3设置referer会报错,并引用资料说明ActiveX插件不会传递Referer但会传递Cookie。
用Loader去加载一个服务器图片,发现不成功,原理是服务器对referer有限制,而Loader没有referer

由于权限的原因,也没办法设置referer,as3设置referer会报错,这样可以防止伪造referer

网上查到这么一句话"通过ActiveX显示的内容不向服务器提供Referer Header(例如,Flash,WindowsMedia等),ActiveX插件不传递Referer,但是却忠实的传递Cookie"


总结: 个人感觉referer是应该带上去的...没有referer会很郁闷...
<!doctype html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><link rel="icon" href="/favicon.ico"><title>中国理财网信息披露å¹&sup3;台</title><script>var userAgent = navigator.userAgent if (userAgent.indexOf(&#39;MSIE&#39;) > -1 || userAgent.indexOf(&#39;Trident&#39;) > -1) { window.location.href = &#39;./ie.html&#39;; }</script><style>.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}#loader-wrapper{position:fixed;top:0;left:0;width:100%;height:100%;z-index:999999}#loader{display:block;position:relative;left:50%;top:50%;width:9.375rem;height:9.375rem;margin:-4.688rem 0 0 -4.688rem;border-radius:50%;border:.188rem solid transparent;border-top-color:#fff;animation:spin 2s linear infinite;z-index:1001}#loader:before{content:"";position:absolute;top:.313rem;left:.313rem;right:.313rem;bottom:.313rem;border-radius:50%;border:.188rem solid transparent;border-top-color:#fff;animation:spin 3s linear infinite}#loader:after{content:"";position:absolute;top:.938rem;left:.938rem;right:.938rem;bottom:.938rem;border-radius:50%;border:.188rem solid transparent;border-top-color:#fff;animation:spin 1.5s linear infinite}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}#loader-wrapper .loader-section{position:fixed;top:0;width:51%;height:100%;background:#7171c6;z-index:1000;transform:translateX(0)}#loader-wrapper .loader-section.section-left{left:0}#loader-wrapper .loader-section.section-right{right:0}.loaded #loader-wrapper .loader-section.section-left{transform:translateX(-100%);transition:all .7s .3s cubic-bezier(.645, .045, .355, 1)}.loaded #loader-wrapper .loader-section.section-right{transform:translateX(100%);transition:all .7s .3s cubic-bezier(.645, .045, .355, 1)}.loaded #loader{opacity:0;transition:all .3s ease-out}.loaded #loader-wrapper{visibility:hidden;transform:translateY(-100%);transition:all .3s 1s ease-out}.no-js #loader-wrapper{display:none}.no-js h1{color:#222}#loader-wrapper .load_title{font-family:&#39;Open Sans&#39;,sans-serif;color:#fff;font-size:1.188rem;width:100%;text-align:center;z-index:9999999999999;position:absolute;top:60%;opacity:1;line-height:1.875rem}#loader-wrapper .load_title span{font-weight:400;font-style:italic;font-size:.813rem;color:#fff;opacity:.5}</style><script type="module" crossorigin src="/static/js/index-2c60fe1e.js"></script><link rel="modulepreload" crossorigin href="/static/js/vendor-04dc1838.chunk.js"><link rel="stylesheet" href="/static/css/vendor-96cc4a20.css"><link rel="stylesheet" href="/static/css/index-553b67f7.css"></head><body><div id="app"><div id="loader-wrapper"><div id="loader"></div><div class="loader-section section-left"></div><div class="loader-section section-right"></div><div class="load_title">正在加载ç&sup3;»ç»Ÿèµ„源,请耐心等å&frac34;…<br/>若长时间加载,请尝试更换或升级浏览器!</div></div></div></body></html> <Response [200]>
10-12
&#39;use strict&#39; const path = require(&#39;path&#39;) function resolve(dir) { return path.join(__dirname, dir) } const CompressionPlugin = require(&#39;compression-webpack-plugin&#39;) const name = process.env.VUE_APP_TITLE || &#39;其亚管理系统&#39; // 网页标题 const port = process.env.port || process.env.npm_config_port || 80 // 端口 // vue.config.js 配置说明 //官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions // 这里只列一部分,具体配置参考文档 module.exports = { chainWebpack: config => { config.module .rule(&#39;tinymce&#39;) .test(/tinymce\/.*\.js$/) .use(&#39;babel-loader&#39;) .loader(&#39;babel-loader&#39;) .end() }, // 部署生产环境和开发环境下的URL。 // 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上 // 例如 https://www.qiya.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.qiya.vip/admin/,则设置 baseUrl 为 /admin/。 publicPath: process.env.NODE_ENV === "production" ? "/" : "/", // 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist) outputDir: &#39;dist&#39;, // 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下) assetsDir: &#39;static&#39;, // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。 productionSourceMap: false, transpileDependencies: [&#39;quill&#39;], // webpack-dev-server 相关配置 devServer: { host: &#39;0.0.0.0&#39;, port: 81, open: true, proxy: { // detail: https://cli.vuejs.org/config/#devserver-proxy [process.env.VUE_APP_BASE_API]: { target: `http://218.31.203.46:8081`, hangeOrigin: true, pathRewrite: { [&#39;^&#39; + process.env.VUE_APP_BASE_API]: &#39;&#39; }, } }, disableHostCheck: true }, css: { loaderOptions: { sass: { sassOptions: { outputStyle: "expanded" } } } }, configureWebpack: { name: name, resolve: { alias: { &#39;@&#39;: resolve(&#39;src&#39;) } }, plugins: [ // http://doc.qiya.vip/qiya-vue/other/faq.html#使用gzip解压缩静态文件 new CompressionPlugin({ cache: false, // 不启用文件缓存 test: /\.(js|css|html|jpe?g|png|gif|svg)?$/i, // 压缩文件格式 filename: &#39;[path][base].gz[query]&#39;, // 压缩后的文件名 algorithm: &#39;gzip&#39;, // 使用gzip压缩 minRatio: 0.8, // 压缩比例,小于 80% 的文件不会被压缩 deleteOriginalAssets: false // 压缩后删除原文件 }) ], }, chainWebpack(config) { config.plugins.delete(&#39;preload&#39;) // TODO: need test config.plugins.delete(&#39;prefetch&#39;) // TODO: need test // set svg-sprite-loader config.module .rule(&#39;svg&#39;) .exclude.add(resolve(&#39;src/assets/icons&#39;)) .end() config.module .rule(&#39;icons&#39;) .test(/\.svg$/) .include.add(resolve(&#39;src/assets/icons&#39;)) .end() .use(&#39;svg-sprite-loader&#39;) .loader(&#39;svg-sprite-loader&#39;) .options({ symbolId: &#39;icon-[name]&#39; }) .end() config.when(process.env.NODE_ENV !== &#39;development&#39;, config => { config .plugin(&#39;ScriptExtHtmlWebpackPlugin&#39;) .after(&#39;html&#39;) .use(&#39;script-ext-html-webpack-plugin&#39;, [{ // `runtime` must same as runtimeChunk name. default is `runtime` inline: /runtime\..*\.js$/ }]) .end() config.optimization.splitChunks({ chunks: &#39;all&#39;, cacheGroups: { libs: { name: &#39;chunk-libs&#39;, test: /[\\/]node_modules[\\/]/, priority: 10, chunks: &#39;initial&#39; // only package third parties that are initially dependent }, elementUI: { name: &#39;chunk-elementUI&#39;, // split elementUI into a single package test: /[\\/]node_modules[\\/]_?element-ui(.*)/, // in order to adapt to cnpm priority: 20 // the weight needs to be larger than libs and app or it will be packaged into libs or app }, commons: { name: &#39;chunk-commons&#39;, test: resolve(&#39;src/components&#39;), // can customize your rules minChunks: 3, // minimum common number priority: 5, reuseExistingChunk: true } } }) config.optimization.runtimeChunk(&#39;single&#39;) }) } } 这个是我在开发时对前端项目做的代理,现在我要部署到我本地的nginx上,我的nginx.conf配置如下:# 必须的全局配置 worker_processes 1; events { worker_connections 1024; } # 所有 server 块必须包含在 http 块内 http { include mime.types; default_type application/octet-stream; # 日志格式 log_format main &#39;$remote_addr - $remote_user [$time_local] "$request" &#39; &#39;$status $body_bytes_sent "$http_referer" &#39; &#39;"$http_user_agent" "$http_x_forwarded_for"&#39;; access_log logs/access.log main; error_log logs/error.log; sendfile on; keepalive_timeout 65; # 您的应用配置开始 server { listen 80; server_name 172.26.26.38; # 替换为您的域名或服务器IP root dist_HTGL; # 应该是目录,不是文件 # 启用 Gzip 静态文件支持 gzip_static on; gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; # 路由 history 模式支持 location / { index index.html; try_files $uri $uri/ /index.html; # 缓存配置 if ($request_filename ~* .*\.(?:js|css|jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm)$) { expires 365d; add_header Cache-Control "public, immutable"; } } # 静态资源目录 location /static/ { alias dist_HTGL/static/; expires max; add_header Cache-Control "public, immutable"; access_log off; } # API 代理配置 location ^~ /process.env.VUE_APP_BASE_API/ { proxy_pass http://218.31.203.46:8081; # 请求头处理 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # WebSocket 支持 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # 超时设置 proxy_connect_timeout 60s; proxy_read_timeout 600s; proxy_send_timeout 600s; } # 禁止访问敏感文件 location ~ /\.(env|git) { deny all; return 403; } # 错误页面 error_page 404 /index.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } # 可选:HTTP 重定向到 HTTPS server { listen 80; server_name your-domain.com; return 301 https://$host$request_uri; } } 为什么启动后我登录请求的验证码获取不到
08-30
【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其与遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究与改进中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值