nodejs搭建本地服务器轻松解决跨域问题搭建本地服务器轻松解决跨域问题
主要介绍了利用nodejs搭建本地服务器 解决跨域问题,需要的朋友可以参考下
最近把以前用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
评论0