域名系统DNS以及跨域问题
mail.cctv.com (从左到右依次是三级域名.二级域名.顶级域名)
$('#search_input').on('keyup',function(event){
var searText=$('#search_input').val();
$.ajax({
type:'get',
async:true,
dataType:'jsonp',
jsonp:'cb',
url:'http://api.bing.com/qsonhs.aspx?type=cb&q='+searchText,
success:function(data){
var data=data.AS.Results[].Suggests;
var html='';
for(var i=;i<data.length;i++){
html+='<li>'+data[i].Txt+'</li>';
}
$('#search-result').html(html);
$('#search-suggest').show().css({
top:$('#search-form').offset().top+$('#search-form').height()+;
})
}
})
})
res.setHeader('Access-Control-Allow-Methods','PUT')//access-control-allow-methods:预检请求的应答中明确了客户端所要访问的资源允许使用的方法或方法列表
res.setHeader('Access-Control-Max-Age',)//响应的首部表示预检请求的返回结果可以被缓存多久
//响应首部Access-Control-Allow-Headers:预检请求,列出了将会在正式请求中access-control-headers字段中出现的首部信息
if(req.method==='OPTIONS'){
req.end()
}
app.put('/getData',function(req,res){
console.log(req.headers);
res.end('hello');
})
let xhr=new XMLHttpRequest()
document.cookie='name=hello'//cookie不能跨域
xhr.withCredentials=true;
//一个boolean类型,指示了是否该使用类似cookies,authorization headers或者TLS客户端证书这一类资格证书来创建一个跨站点访问控制请求。在同一个站点下使用withCredentials属性是无效的
xhr.open('PUT','http://localhost:4000/heoo',true)
xhr.setRequestHeader('name','yuanq')
xhr.onreadystatechange=function(){
if(xhr.readyState===4){
if((xhr.status>=200&&xhr.status<300)||xhr.status===304)
{
console.log(xhr.response);
console.log(xhr.getResponseHeader('name'));
}
}
}
xhr.send()
//server1.js
let express=require('express');
let app=express();
app.use(express.static(_dirname));
app.listen(3000)
let express=require('express');
let app=express();
let whitList=['http://localhost:3000']
//设置白名单
app.use(function(req,res,next){
let origin=req.headers.origin
if(whiteList.includes(origin)){
//设置可以访问的源
res.setHeader('Access-Control-Origin',origin)
//允许携带哪个头访问我
res.setHeader('Access-Control-Headers','name')
//允许哪个方法可以访问我
res.setHeader('Access-Control-Allow-Methods','PUT')
//允许哪个携带cookie
res.setHeader('Access-Control-Allow-Credentials',true)
//预检的存活时间
res.setHeader('Access-Control-Max-Age',6)
//允许返回头
res.setHeader('Access-Control-Expose-Headers','name')
if(req.method==='OPTIONS'){
res.end()
}
}
next()
})
app.put('/getData',function(req,res){
console.log(req.headers);
res.setHeader('name','jeo')
res.end('hello')
})
app.get('/getData',function(req,res){
console.log(req.headers);
res.end('hello')
})
app.use(express.static(_dirname))
app.listen(5000)
<script>
let socket=new WebSocket('ws://localhost:233');
socket.onopen=function(){
socket.send('hl')
}
socket.onmessage=function(e){
console.log(e.data); } </script>
//服务器端
let express=require('express');
let app=express();
let WebSocket= require('nodejs-websocket')
let wss=new WebSocket.Server({port:})
wss.on('connection',function(ws){
ws.on('message',function(data){
console.log(data);
ws.send('hell')
})
})
域名系统DNS以及跨域问题的更多相关文章
- MassDNS:跨域DNS枚举工具
MassDNS:跨域DNS枚举工具 simeon 原文地址:http://offsecbyautomation.com/Use-MassDNS/ 工具地址:https://github.com/ble ...
- 跨域之URL
在介绍怎么跨域之前,先来弄清楚一个概念:URL.以下内容摘自维基百科. 统一资源定位符(或称统一资源定位器/定位地址.URL地址等,英语:Uniform / Universal Resource Lo ...
- JavaScript学习笔记(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例
一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...
- 跨域的jsonP
1.出现原因:因为web中的同源策略(域名,协议,端口号)限制了跨域访问. 2.区别于json (个人理解)json是数据交换格式,jsonp是数据通信中的交互方式 3.jsonp的get与p ...
- JavaScript权威设计--跨域,XMLHttpRequest(简要学习笔记十九)
1.跨域指的是什么? URL 说明 是否允许通信 http://www.a.com/a.jshttp://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a. ...
- JavaScript学习总结(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例
一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...
- 关于域名系统DNS解析IP地址的一些总结
关于域名系统DNS(Domain Name System) 从域名中解析出IP地址. DNS主要由3部分组成: ① 名称解析器(resolver) ② 域名空间(domain name space) ...
- Ajax跨域:Jsonp原理解析
推荐先看下这篇文章:JS跨域(ajax跨域.iframe跨域)解决方法及原理详解(jsonp) JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重 ...
- JSONP跨域的原理解析( 一种脚本注入行为)
JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制, 被称为“some-Origin Policy”(同源策略).这一策略对于Jav ...
随机推荐
- Node文件模块
在上一篇文章中有提到,Node模块分为核心模块和文件模块,接下来就简单总结一下文件模块. 文件模块则是在运行时动态加载,需要完整的路径分析.文件定位.编译执行过程.速度相比核心模块稍微慢一些,但是用的 ...
- Ubuntu16.04主题美化
系统更新 sudo apt-get update sudo apt-get upgrade # 卸载libreOffice libreoffice是ubuntu自带的开源office软件,体验效果不如 ...
- C#和.Net的关系
1..net(dot net) .net是一个平台,抽象的平台概念. 实现形式是库:①定义了基本的类型(通用类型系统CTS,common type system). ②包含.net公共语言运行库( ...
- Linux常用命令 笔记
Linux常用命令 笔记 一.文件处理命令 1. ls命令:显示目录文件 -a 显示所有文件,包括隐藏文件.(all) ...
- 在c#中利用keep-alive处理socket网络异常断开的方法
本文摘自 http://www.z6688.com/info/57987-1.htm 最近我负责一个IM项目的开发,服务端和客户端采用TCP协议连接.服务端采用C#开发,客户端采用Delphi开发.在 ...
- mongo 高级操作
聚合 aggregate 聚合(aggregate)主要用于计算数据,类似sql中的sum().avg() 语法 db.集合名称.aggregate([{管道:{表达式}}]) 管道 管道在Unix和 ...
- Anatomy of a Database System学习笔记 - 查询
查询解析 解析会生成一个查询的内部展示.格式检查包含在解析过程中. 每次解析一个SELECT,步骤如下:1. 从FROM里找到表名,转换成schema.tablename.这一步需要调用目录管理器ca ...
- Maven 错误:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project appservice-common: Fatal error compiling: 无效的目标发行版: 1.8
通过IDEA 提供的面板 执行package 或者 install 没有错误,但是cmd terminal 窗口就不行!出现: Maven 错误:Failed to execute goal org. ...
- arcgis10.2 sde配置
本机配置好oracle11g server 64位+client 32位.
- MySQL(进阶部分)
视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. SELECT * FROM ( SEL ...