当前位置: 首页 > news >正文

宝鸡做宝鸡做网站网站/品牌策划设计

宝鸡做宝鸡做网站网站,品牌策划设计,潍坊公司网站模板建站,济南专业网站建设哪家便宜跨域有多种方式,现在的情况看来还是CORS更适合一些,有很多优点,比如浏览器正式支持、支持post、可以控制跨域访问的网站等。 我们来看看node如何实现cors方式的跨域。在网上找到了一些代码,考过来之后运行报错,可能这个…

  跨域有多种方式,现在的情况看来还是CORS更适合一些,有很多优点,比如浏览器正式支持、支持post、可以控制跨域访问的网站等。

 

  我们来看看node如何实现cors方式的跨域。在网上找到了一些代码,考过来之后运行报错,可能这个是在express里面的写法吧,那么原生的写法是什么样子的呢?又找了半天,并且经过测试得到了原生的写法:

 

express的写法:

---app.js---
app.all('*', function(req, res, next) {res.header("Access-Control-Allow-Origin", "*");res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");res.header("X-Powered-By",' 3.2.1')if(req.method=="OPTIONS") res.send(200);/*让options请求快速返回*/else  next();
});

 

node原生写法:

var http = require("http");http.createServer(function (req, res) {var a={"a1":"www"};// 获得客户端的Cookievar Cookies = {};req.headers.cookie && req.headers.cookie.split(';').forEach(function( Cookie ) {var parts = Cookie.split('=');Cookies[ parts[ 0 ].trim() ] = ( parts[ 1 ] || '' ).trim();});console.log(Cookies);//获取自定义头
        console.log(req.headers.xtoken);// 向客户端设置一个Cookieres.setHeader('Set-Cookie','myCookie2=test');//res.setHeader("Access-Control-Allow-Origin", "*");res.setHeader("Access-Control-Allow-Origin", "http://127.0.0.1:8050"); //带cookie的话,不能写*res.setHeader("Access-Control-Allow-Credentials", true); //允许带 cookieres.setHeader("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With,xToken");res.setHeader("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");res.setHeader("X-Powered-By",' 3.2.1');res.writeHeader(200, {'Content-Type': 'application/json'});if(req.method=="OPTIONS"){/*让options请求快速返回*/res.end();}else{res.write(JSON.stringify(a));res.end();}}}).listen(8080);

 

 

  需要先用 setHeader 进行设置,最后再用 writeHeader 进行设置。这样就可以了。

  还有一些小地方,设置不好的话很容易报错。翻来覆去调试了好久才好。

 

  然后就是客户端的写法了,由于客户端使用的框架不同,设置方式也有点差别,这里先介绍一下比较基本的jQuery的方式。

 

$.ajax({type: "POST",          //post方式 dataType: "JSON",      //json格式的数据cache: false,           //客户端不缓存headers: {           //自定义头    xtoken: "1234qwert"},
               xhrFields: {//允许跨域访问时添加cookiewithCredentials: true     //true "Access-Control-Allow-Origin" 不能写* ;false可以写 *
               },crossDomain: true,url: "http://127.0.0.1:8080/1234",data: {"a":"11"},        //json格式的数据//timeout: 2000,error: function (request, textStatus, errorThrown) { //访问失败,自动停止加载动画,并且给出提示alert("提交的时候发生错误!");},success: function (data) {$("#div").html(data.a1);}});

 

  这里的 xhrFields 设置,折腾半天,找了好久终于搞定了。其实只需要在后端加一行代码就行。

 

  另外用了自定义头,客户端会自动发起两次请求。就是说你的代码之ajax了一次,但是浏览器会发起两个请求,后端会收到两个请求,所以有了

if(req.method=="OPTIONS") res.send(200); 这样的判断。

 

 

参考目录

 

1、node的原生 header: https://www.cnblogs.com/jay--zhang/p/6229139.html 

 

2、node 接收 自定义 header

 作者:zding92 
来源:CSDN 
原文:https://blog.csdn.net/u011481543/article/details/79582555 
 

 

3、解决cookie的问题 :https://www.jb51.net/article/137278.htm

 

转载于:https://www.cnblogs.com/jyk/p/10825981.html

http://www.lbrq.cn/news/787825.html

相关文章:

  • 网站备案为什么要关闭/seo关键词seo排名公司
  • 购物商城图片/seo培训机构
  • 个人免费网站建设/武汉网站制作推广
  • 大连html5网站建设费用/友情链接交易网站源码
  • 丹东城乡建设委员会网站/重庆关键词自动排名
  • 英文网站建设需要注意的五点问题/网络推广外包加手机蛙软件
  • 北京做网站费用/互联网培训机构排名前十
  • 如何查看网站的访问量/抖音关键词搜索指数
  • 如何建设属于自己的网站/百度站长平台官网登录入口
  • 东营建设工程信息网官网/宁波seo网站服务
  • 个人做地方网站/网络推广都有哪些平台
  • 东莞公司注册哪家好/以下哪个单词表示搜索引擎优化
  • 定兴做网站的/今日重大新闻头条十条
  • 公司网址正确格式/网站seo优化服务商
  • 制作网站好的公司/网站宣传的方法有哪些
  • 聊天网站制作教程/网络营销比较成功的企业
  • 二级网站的建设/软文写作要求
  • 柬埔寨做网站赌博在那边违反吗/引擎优化是什么工作
  • 网站搭建教学/百度广告投放代理商
  • 云南 网站建设网站/百度官方网站
  • 网上做网站怎么做下拉菜单/中国万网域名注册
  • 公司做网站多少钱乐器/今日头条热榜
  • 政府网站建设 特色栏目展示/seo的方法
  • 学校风采网站建设需求/热搜榜百度
  • 双语网站建设费用/东莞seo外包
  • 福州网站建设招聘信息/南京响应式网站建设
  • 网站建设功能描述书/小网站关键词搜什么
  • 企业网站登录/杭州网站关键词排名
  • 网站建设氵金手指专业/免费seo工具
  • 三个字广告公司名称/seo广告优化多少钱
  • sqli-labs-master/Less-31~Less-40
  • sqli-labs通关笔记-第30关GET字符注入(WAF绕过 双引号闭合 手工注入+脚本注入两种方法)
  • 服务器中切换盘的操作指南
  • WD5208S,12V500MA,应用于小家电电源工业控制领域
  • IDM下载失败排查
  • JVM学习日记(十四)Day14——性能监控与调优(一)