1.为什么很多前端项目要使用node.js来启动项目2.js获取json文件

一:在接触js项目的时候,会有一个疑问,为什么这些项目都要使用node.js来启动项目,以服务形式去访问(或者使用tomcat也可以)

以下转自:https://www.cnblogs.com/lishanlei/p/10707853.html

在浏览器中,为了安全,让服务只能获取服务端的资源,也就是不能随意获取本地资源,否则用户使用浏览器就不安全,本地东西容易被窃取。

关于在JS中AJAX导致跨域问题的解决

在部署一个原声的前端项目的时候,请求该服务器后端接口时发现出现了CORS跨域的问题,但是服务端已经做了同源策略的兼容,常见问题,遂记录。

报错信息:

XMLHttpRequest cannot load http://xxxx.cn. Cross origin requests are only supported for protocol schemes: http, data, chrome-extension, https, chrome-extension-resource. 

错误分析:

  1. 这是由于ajax的跨域访问引起的
  2. ajax没有经过服务器而直接访问请求,使用了file协议

通俗的说,就是没有在服务器环境中运行含有ajax方法的页面,而是类似于浏览器直接打开的形式运行该页面,这样子并没有使用http协议,而是直接使用了file协议。

本地页面请求远程服务端时,默认使用http://协议,但是本地页面中的ajax方法请求本地时,默认的是file:///协议,而file协议是不予许跨域请求的,所以在请求时,请求的URL格式类似于:

http://xxxx.cn/xxxxx

在请求的url前一定要加上http://

 

二:js中读取json文件,一般使用ajax方式,所以启动项目需要使用node.js来启动。

以下是关于json的读取:转自:https://blog.csdn.net/ClearLoveQ/article/details/90480207

1.首先编写一个json文件:demo.json

[ 
{ 
"name":"张三", 
"sex":"男", 
"email":"zhangsan@123.com" 
}, 
{ 
"name":"李四", 
"sex":"男", 
"email":"lisi@123.com" 
}, 
{ 
"name":"王五", 
"sex":"女", 
"email":"wangwu@123.com" 
} 
] 
2.js读取json文件

<script>
		window.onload = function () {
            var url = "demo.json"/*json文件url,本地的就写本地的位置,如果是服务器的就写服务器的路径*/
            var request = new XMLHttpRequest();
            request.open("get", url);/*设置请求方法与路径*/
            request.send(null);/*不发送数据到服务器*/
            request.onload = function () {/*XHR对象获取到返回信息后执行*/
                if (request.status == 200) {/*返回状态为200,即为数据获取成功*/
                    var json = JSON.parse(request.responseText);
                    for(var i=0;i<json.length;i++){
                    	console.log(json[i].name);
                    }
                    console.log(json);
                }
            }
       }
	</script>
3.我的文件位置



4.用Ajax也是可以的

<script type="text/javascript">
    var Ajax = function ()
    {
        $.getJSON ("demo.json", function (data)
        {
            $.each (data, function (i, item)
            {
               console.log(item.name);
            });
        });
    }();
</script>
$.ajax({
				url: "demo.json",//json文件位置,文件名
				type: "GET",//请求方式为get
				dataType: "json", //返回数据格式为json
				success: function(data) {//请求成功完成后要执行的方法 
				   //给info赋值给定义好的变量
				   var pageData=data;
				   for(var i=0;i<data.length;i++){
					   console.log(pageData[i].name);
				   }
				}
			})
————————————————
版权声明:本文为CSDN博主「ClearLoveQ」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ClearLoveQ/article/details/90480207

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值