nodejs搭建本地服务器轻松解决跨域问题


Posted in NodeJs onMarch 21, 2018

最近把以前用jquery写的一个小demo拿出来运行的,刚开始的时候忘了开启本地服务导致控制台一直报XMLHttpRequest cannot load file:///C:/Users/79883/Desktop/ajax/data.json?{%22username%22:%22lcl@qq.com%22,%22pwd%22:%22Home20170702%22}. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.然后我就去启动自己写的server.js服务器,在这过程中,感觉这种方式挺麻烦的,就一直去尝试了其它的方式什么去改浏览器属性等都试过了但是都没有解决跨域问题,最终得出两种有效方式,在这里我就把这两种方式一起介绍大家。

一、使用 Node 创建 Web 服务器

注:Node.js 提供了 http 模块,http 模块主要用于搭建 HTTP 服务端和客户端,下面就是简单的服务器实现过程:

1、编写服务器代码server.js

var http = require('http'); 
var fs = require('fs');//引入文件读取模块 
var documentRoot = 'C:/Users/79883/Desktop/jquery/ajax';//需要访问的文件的存放目录 
var server= http.createServer(function(req,res){ 
  //客户端输入的url,例如如果输入localhost:8888/index.html 
 //那么这里的url == /index.html 
 var url = req.url; 
 var file = documentRoot + url; 
 console.log(url); 
 fs.readFile( file , function(err,data){ 
 /* 
  一参为文件路径 
  二参为回调函数 
   回调函数的一参为读取错误返回的信息,返回空就没有错误 
   二参为读取成功返回的文本内容 
 */ 
  if(err){ 
   //HTTP 状态码 404 : NOT FOUND 
   //Content Type:text/plain 
   res.writeHeader(404,{ 
    'content-type' : 'text/html;charset="utf-8"' 
   }); 
   res.write('<h1>404错误</h1><p>你要找的页面不存在</p>'); 
   res.end(); 
  }else{ 
   //HTTP 状态码 200 : OK 
   //Content Type:text/plain 
   res.writeHeader(200,{ 
    'content-type' : 'text/html;charset="utf-8"' 
   }); 
   res.write(data);//将index.html显示在客户端 
   res.end(); 
  } 
 }); 
}).listen(8888); 
console.log('服务器开启成功');

通过上面代码,我们就能够实现服务器对于文件的查找,下面,我们就进行创建一个html文件,然后通过浏览器进行访问。

2、编写html文件(index.html),用于浏览器进行请求

<!DOCTYPE html> 
<html lang="en"> 
<head> 
 <meta charset="UTF-8"> 
 <title>index</title> 
</head> 
<body> 
 这是一个用于进行nodejs服务器测试的html文件,通过在浏览器上面输入 
 http://127.0.0.1:8888/index.html(自己所建的项目名)进行访问 
</body> 
</html>

3、进行测试

    (1) 首先我们启动服务器,打开cmd,找到项目所在位置,然后输入命令node server.js启动服务器

    (2) 在浏览器进行访问,在url栏中输入http://127.0.0.1:888/index.html

如果对应页面显示出来就证明你成功了。接下来我将介绍nodejs快速搭建本地服务,也就是我说的第二种方法。

二、使用nodejs快速搭建本地服务

注:node.js 的anywhere就是随时随地将你的当前目录变成一个静态文件服务器的根目录

1、首先打开cmd,输入node -v检测你确定你是否安装好了node.js,然后输入命令npm install angwhere -g,进行安装静态文件服务器,安装完如下图显示:

nodejs搭建本地服务器轻松解决跨域问题

2、在cmd页面 找到你想搭建服务器的路径

3、然后再当前路径下输入: anywhere 8888  如下图显示

nodejs搭建本地服务器轻松解决跨域问题

4、回车后,浏览器就自动打开本地访问网址,一个简单的node服务器就这样被我们搭建好啦!

总结

以上所述是小编给大家介绍的nodejs搭建本地服务器轻松解决跨域问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

NodeJs 相关文章推荐
我的NodeJs学习小结(一)
Jul 06 NodeJs
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
Sep 26 NodeJs
nodejs实现bigpipe异步加载页面方案
Jan 26 NodeJs
Nodejs如何搭建Web服务器
Mar 28 NodeJs
nodejs实现发出蜂鸣声音(系统报警声)的方法
Jan 18 NodeJs
使用 NodeJS+Express 开发服务端的简单介绍
Apr 07 NodeJs
nodejs个人博客开发第一步 准备工作
Apr 12 NodeJs
NodeJs模拟登陆正方教务
Apr 28 NodeJs
配置nodejs环境的方法
May 13 NodeJs
Nodejs中使用captchapng模块生成图片验证码
May 18 NodeJs
nodejs接入阿里大鱼短信验证码的方法
Jul 10 NodeJs
nodejs异步编程基础之回调函数用法分析
Dec 26 NodeJs
nodejs中密码加密处理操作详解
Mar 20 #NodeJs
nodejs连接mysql数据库及基本知识点详解
Mar 20 #NodeJs
nodejs基于express实现文件上传的方法
Mar 19 #NodeJs
nodejs+mongodb aggregate级联查询操作示例
Mar 17 #NodeJs
nodejs实现超简单生成二维码的方法
Mar 17 #NodeJs
NodeJS父进程与子进程资源共享原理与实现方法
Mar 16 #NodeJs
NodeJS实现不可逆加密与密码密文保存的方法
Mar 16 #NodeJs
You might like
PHP Memcached + APC + 文件缓存封装实现代码
2010/03/11 PHP
php+mysql 实现身份验证代码
2010/03/24 PHP
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
2014/02/18 PHP
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
jQuery LigerUI 使用教程入门篇
2012/01/18 Javascript
js获得指定控件输入光标的坐标兼容IE,Chrome,火狐等多种主流浏览器
2013/05/21 Javascript
写得不错的jquery table鼠标经过变色代码
2013/09/27 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
js在数组中删除重复的元素自保留一个(两种实现思路)
2014/08/22 Javascript
Jquery通过ajax请求NodeJS返回json数据实例
2016/11/08 NodeJs
详解JS中的快速排序与冒泡
2017/01/10 Javascript
js实现日历与定时器
2017/02/22 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
使用webpack编译es6代码的方法步骤
2019/04/28 Javascript
Layui 解决表格异步调用后台分页的问题
2019/10/26 Javascript
jQuery操作选中select下拉框的值代码实例
2020/02/07 jQuery
详解JavaScript中分解数字的三种方法
2021/01/05 Javascript
[36:19]2018DOTA2亚洲邀请赛 小组赛 A组加赛 Newbee vs LGD
2018/04/03 DOTA
python发送邮件示例(支持中文邮件标题)
2014/02/16 Python
Python实现的数据结构与算法之链表详解
2015/04/22 Python
python爬虫之百度API调用方法
2017/06/11 Python
Python实现对字典分别按键(key)和值(value)进行排序的方法分析
2018/12/19 Python
基于python的selenium两种文件上传操作实现详解
2019/09/19 Python
python加载自定义词典实例
2019/12/06 Python
美团网旗下网上订餐平台:美团外卖
2020/03/05 全球购物
求职信写作要突出重点
2014/01/01 职场文书
给学校的建议书范文
2014/05/15 职场文书
个人租房协议书范本
2014/09/30 职场文书
2014年保育员个人工作总结
2014/12/02 职场文书
精神文明建设先进个人事迹材料
2014/12/24 职场文书
摩登时代观后感
2015/06/03 职场文书
公司保洁员管理制度
2015/08/04 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers
Vue vee-validate插件的简单使用
2021/06/22 Vue.js
科学家研发出新型速效酶,可在 24 小时内降解塑料制品
2022/04/29 数码科技