域名系统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 ...
随机推荐
- 知识点:Mysql 索引原理完全手册(2)
知识点:Mysql 索引原理完全手册(1) 知识点:Mysql 索引原理完全手册(2) 知识点:Mysql 索引优化实战(3) 知识点:Mysql 数据库索引优化实战(4) 八. 联合索引与覆盖索引 ...
- MJRefresh在Xode6中报错处理
MJRefresh在Xcode6中会报错,objc_msgSend(self.beginRefreshingTaget, self.beginRefreshingAction, self),简单调 ...
- Postman Could not get any response
在使用postman时遇到的小问题,记录一下: 报错信息如下: Could not get any response There was an error connecting to https:// ...
- LayaAir疑难杂症之三:1.7版本click()、execCommand('copy')函数不生效
问题描述 在使用Laya1.7引擎开发H5游戏时,引入Js原生函数click( ),模拟一次点击事件,发现无效.在使用Laya1.7引擎开发H5游戏时,引入Js原生函数execCommand('cop ...
- 用 Python 获取 B 站播放历史记录
用 Python 获取 B 站播放历史记录 最近 B 站出了一个年度报告,统计用户一年当中在 B 站上观看视频的总时长和总个数.过去一年我居然在 B 站上看了2600+个视频,总计251个小时,居然花 ...
- centos7 配置lamp 环境
搭建版本 版本组合 php5.6+apache/2.4.6(centos7)+mysql5.7.24 因为新系统不能确认哪些指令已经搭建 所以安装前需要确认下是否拥有 检测是否已经安装过Vim rp ...
- python 虚拟环境使用与管理(virtualenv)
安装虚拟环境 pip install virtualenv 安装虚拟环境管理工具 pip install virtualenvwrapper-win 设置虚拟环境目录(虚拟环境存放位置) 默认创建的虚 ...
- C# Func与Action
Func与Action是C#的内置委托,在使用委托时,可不必再定义. (1)Func:有返回类型的委托. Func类型的委托,肯定有一个返回类型,如果Func只有一个参数,那么它就是代表没有参数但是有 ...
- mysql日期 获取本月第一天 获取下个月的第一天
--获取当前日期 select curdate(); --获取当月最后一天 select last_day(curdate()); --获取本月第一天 select DATE_ADD(curdate( ...
- python之路:用户输入(一)
python之路:用户输入(一) 好了,现在我学了点博客的用法,现在不会像以前的那么土了.好吧,不多说,我要讲课了. 今天,我会用情景实例给大家说这个用户输入. 情景是:你是IT教育的python带头 ...