后台访问 JS解决跨域问题
今天看了看以前做的一个小项目(其实就是一个页面),分享一下当时解决跨域问题的:
背景:公司把项目部署在多台服务器上,防止一台服务器崩溃后,其他的可以继续访问,对应本公司来说,某台服务器出问题后,技术人员想很快的找到那台服务器解决问题,但是公网上是看不出哪台的,因为不管是几台服务器在后台,我们访问的都是同一个域名(例如:ww.baidu.com ,但是百度公司可能有N台服务器,当前可能是其中一台在工作,那怎样才能知道当前服务器的运行状态呢?
我是这么解决的,在部署的项目中有一个页面叫 Ip.aspx,该页面的只要工作是输出其所在服务器信息,例如所在物理服务器IP号,数据库连接状态等,这些信息都是很容易获取的,另外还有一个页面叫IP_VIEW.aspx,这样在项目的配置文件中可以添加一个节点,记录的 是所有服务器的地址,例如有三台服务器 192.168.100.1;192.168.100.2;192.168.100.3;192.168.100.3,IP_VIEW 后台通过这些IP就可以不断的循环(例如一分钟)调取各个服务上 Ip.aspx页面的输出内容,然后把它们输出到IP_VIEW.aspx 前台界面上来,就可以看出各个服务器的运行状态了。
但是问题来了,出于安全考虑J,avaSript不允许跨域访问,何为跨域,例如你不能通过运行在http://192.168.100.1/a.js 的js代码不能访问http://192.168.100.2/b.js 的对象,也就是说在本项目中,不能在前端页面中通过循环调用setInterval 方法去 结合 $.ajax({中的 url,直接访问Ip.aspx 页面,怎么干呢,把这项工作转移到后台,前端界面不断循环访问通过IP_VIEW.aspx 界面,,把具体的访问哪个IP服务器的Ip.aspx 这一动作结合结WebRequest ,HttpWebResponse 对象放到后台的CS代码中执行即可,不知道大家有没有什么更好的方法 分享学习一下
后台访问 JS解决跨域问题的更多相关文章
- 搞懂:前端跨域问题JS解决跨域问题VUE代理解决跨域问题原理
什么是跨域 跨域:一个域下的文档或脚本试图去请求另一个域下的资源 广义的跨域包含一下内容: 1.资源跳转(链接跳转,重定向跳转,表单提交) 2.资源请求(内部的引用,脚本script,图片img,fr ...
- vue.js 解决跨域问题
我们调试vue.js代码的时候一般都用chrome, 下载插件 进入chrome应用商店 搜索 重启chrome就可以解决跨域问题
- js解决跨域问题
JavaScript中的常见解决跨域的方法 1. 通过jsonp跨域 1.)原生实现: 2. document.domain + iframe跨域 此方案仅限主域相同,子域不同的跨域应用场景. 1.) ...
- js解决跨域下载文件
之前用的是a标签的方式,同源是没有问题的,但一跨域就不行了,试了其它方法,不是报跨域错误,就是在当前页面打开文件,体验相当不好. data = data.replace(/\\/g, '/'); va ...
- 手动创建script解决跨域问题(jsonp从入门到放弃)
vue项目一般用axios代替jQuery发送ajax请求,但是不支持jsonp格式,需要安装jsonp的依赖包,这就很不爽了,能自己轻易实现的,为什么要引乱七八糟的插件.jsonp其实就是利用< ...
- springboot WebMvcConfigurer配置静态资源和解决跨域
前言 虽然现在都流行前后端分离部署,但有时候还是需要把前端文件跟后端文件一起打包发布,这就涉及到了springboot的静态资源访问的问题.不单只是静态资源打包,比如使用本地某个目录作为文件存储,也可 ...
- 【快学springboot】6.WebMvcConfigurer配置静态资源和解决跨域
勘误 有个朋友说:为什么我配置了WebMvcConfigurer,静态资源static依然能访问?! 这里是本人的失误,我在启动类中添加了EnableWebMvc注解(文章里却没有提及,最好的做法是放 ...
- [转] js前端解决跨域问题的8种方案(最新最全)
1.同源策略如下: URL 说明 是否允许通信 http://www.a.com/a.jshttp://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.j ...
- 【js跨域】js实现跨域访问的几种方式
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...
随机推荐
- c#smtp多线程
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- Canvas电子签名和游戏化
今天一天的时间都在做包团报价的无流程原型设计,一方面参考了其他系统,一方面整理先在系统中不合理的部分,规范了报价元素的分类.梳理了意向需求,其实原来粗略的放了一个模板进去是听不靠谱的.客户的要求-&g ...
- PL/SQL数据库,Oracle登录
用户名:TESTZYPX_9999 数据库:10.75.142.242:1521/orcl
- 【20161203-20161208】清华集训2016滚粗记&&酱油记&&游记
先挖坑(这个blog怎么变成游记专用了--) 已更完 #include <cstdio> using namespace std; int main(){ puts("转载请注明 ...
- 设计向 20款优秀免费的Icons图标合集 (转)
Pioneer Icons Free Sample Sketch Resource Zodiac Icon Set Sketch Resource 90 Pixel Perfect Halloween ...
- asp.net配置web.config支持jQuery.Uploadify插件上传大文件
配置web.config有两处地方需要配置,分别是集成模式和经典模式. 集成模式: <!--文件上传大小设置--> <httpRuntime requestValidationMod ...
- UEFI模式安装Win10和Linux双系统
最近心血来潮,想装一个Linux.Windows双系统,吸取上次安装的经验,这次一定都要使用UEFI模式启动,需要注意的是必须是支持此种启动模式的系统(一般解压之后都有efi文件夹不需要刻录),这次遇 ...
- docker 配置操作指导
1.下载程序包 安装包 https://github.com/boot2docker/windows-installer/releases(这个地址国内下载很慢) 或这个:http://www.sof ...
- BZOJ4539: [Hnoi2016]树
复制的树缩点,主席树查k小,毫无技术含量,纯码农题. #include<bits/stdc++.h> #define u first #define v second #define F ...
- 深夜用git真是醉了
t吐槽一下那些 感觉命令行高效的傻逼们 我只想吃个牛肉串 你让我先学会宰牛? 命令不是对底层代码的封装? 程序的终极奥义就是把很多复杂的东西,封装到一个按钮就能完成 .叫做简为美. 浪费别人的时间等 ...