时间:2021-05-26
最近把以前用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,进行安装静态文件服务器,安装完如下图显示:
2、在cmd页面 找到你想搭建服务器的路径
3、然后再当前路径下输入: anywhere 8888 如下图显示
4、回车后,浏览器就自动打开本地访问网址,一个简单的node服务器就这样被我们搭建好啦!
总结
以上所述是小编给大家介绍的nodejs搭建本地服务器轻松解决跨域问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前后端分离,使用nginx解决跨域问题前端:vue.js+nodejs+webpack后台:SpringBoot反向代理服务器:nginx思想:将前端代码打包,
直接打开html文件,是以file:///方式打开的,这种方式很多时候会遇到跨域的问题,因此我们一般会搭建一个简易的本地服务器,来运行测试页面。一、构建静态服务
JavaScript初学,一点自己的理解,有不当之处请大家指正~JSONP:本地html文件要获取xxx网站(跨域)数据时使用的方法。跨域问题:外部服务器的数据
1.json与jsonp的引入在ajax中JSON用来解决数据交换问题,而JSONP来实现跨域。备注:跨域也可以通过服务器端代理来解决;理解:JSON是一种数据
在不同域之间访问是比较常见,在本地调试访问远程服务器。。。。这就是有域问题。VUE解决通过proxyTable:在config/index.js