Jquery 如何在node.js服务器上向客户端ajax请求提供json文本文件
我正在aws ubuntu服务器上运行一个简单的node.js web应用程序。我有一些来自api的json数据,这些数据存储在ubuntu服务器的本地文本文件中,名为Jquery 如何在node.js服务器上向客户端ajax请求提供json文本文件,jquery,node.js,ajax,Jquery,Node.js,Ajax,我正在aws ubuntu服务器上运行一个简单的node.js web应用程序。我有一些来自api的json数据,这些数据存储在ubuntu服务器的本地文本文件中,名为data.json 我只想通过AJAX调用从json文件加载数据,并将其呈现在客户端html上 以下是我的项目目录结构: MyApp server.js index.html data.json 此客户端代码在Webstorm和本地运行,但在我的live server上返回一个错误(看
data.json
我只想通过AJAX调用从json文件加载数据,并将其呈现在客户端html上
以下是我的项目目录结构:
MyApp
server.js
index.html
data.json
此客户端代码在Webstorm和本地运行,但在我的live server上返回一个错误(看起来它返回的是一个html错误文件,而不是解释解析错误的json,但没有解决如何获取此数据的问题)
我建议将
*.json
文件放入子文件夹。而不是在服务器端授予对该文件夹的静态访问权限
例如:
将所有*.json
文件放入/public
文件夹中
// server.js
const express = require('express')
const app = express()
app.use('/data', express.static('public'))
...
客户端:
$.get( "/data/my-file.json", function( data ) {
alert( "Data Loaded: " + data );
});
谢谢,你有没有这样的例子?我把它写在我的server.js节点文件中?从前端怎么叫?是的,快车。我需要“静态服务”还是什么?当我这样做时,ThanksIt正在加载一个html文件,而不是data.json。然后出现错误,因为无法分析“在路由之前放置app.use”我更新了我的问题以包含我的server.js节点代码。只需移动行app.use(“/data”,express.static('public'))-在行app.use(“/”,router)之前;订单很重要!
// server.js
const express = require('express')
const app = express()
app.use('/data', express.static('public'))
...
$.get( "/data/my-file.json", function( data ) {
alert( "Data Loaded: " + data );
});