javascript - 用nodejs做后台请求ajax失败
高洛峰
高洛峰 2017-04-11 12:35:56
[JavaScript讨论组]
//服务端
const express = require('express');
const app = express();



app.use(express.static(__dirname));

app.listen(8000);
console.log('server running');



    
    Document
    


    

显示走fail的回调,怎么解决?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(3)
怪我咯

后台没有路由

高洛峰

假设你是在本地调试,并且是通过 http://127.0.0.1:8000/xx.html 来访问你的网页。

那么,需要在服务端代码中添加路由。

//服务端
const express = require('express');
const app = express();

app.use(express.static(__dirname));

// 添加这段路由代码
app.get('/json/example.json', function(req, res, next){
    res.json({ret_code: 0});
});

app.listen(8000);
console.log('server running');
PHPz

看出来你想做一个mock data server。
一般mock server和dev server是分开的,然后通过反向代理将api请求代理到mock server。

你可以使用类似这种现成的库
https://www.npmjs.com/package...
http://www.mock-server.com/

这里有个简单的教程
https://coderwall.com/p/ss80v...

你这里相当于把整个目录提供了静态请求,你直接访问这个json都能访问到,但ajax请求走到fail,我不知道为什么,node里静态代理json貌似是要经过什么处理。我们公司项目里对mock data的引用是通过node读文件写入的。我这里有个例子是用json-server的

var jsonServer = require('json-server')
var apiServer = jsonServer.create()
var apiRouter = jsonServer.router('db.json')
var apiMiddlewares = jsonServer.defaults()
 
apiServer.use(apiMiddlewares)
apiServer.use('/api', apiRouter)
apiServer.listen(port + 1, function (err) {
  if (err) {
    console.log(err)
    return
  }
  console.log('Listening at http://localhost:' + (port + 1) + '\n')
})

api 代理

...
proxyTable: {
    '/api/': 'http://localhost:8889/'
},
...
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号