1、问题描述:
在本地用express构建服务器端,前端访问数据。 报错:Access to XMLHttpRequest at ‘http://localhost:3001/responseData’ from origin ‘http://127.0.0.1:8848’
(一)app.js
const express = require('express');
const path = require('path');
const app = express();
app.use(express.static(path.join(__dirname, 'public')));
app.get('/first', (req,res)=>{
res.send('hello ajax');
});
app.get('/responseData', (req, res)=>{
res.send({"name":"张三"});
});
app.listen(3001);
console.log('3001启动成功');
(二)启动app.js 在app.js目录下,启动命令行窗口 (三)客户端访问
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var xhr = new XMLHttpRequest();
xhr.open('get', 'http://localhost:3001/responseData');
xhr.send();
xhr.onload = function () {
var resText = JSON.parse(xhr.responseText);
console.log(resText);
var str = '<h1>'+resText.name+'</h1>';
document.body.innerHTML = str;
}
</script>
</body>
</html>
2、解决方法:
解决跨域:app.js文件中,在数据响应部分,加上:
res.setHeader("Access-Control-Allow-Origin","*");
3、注意
一般前端文件的打开,在启动的服务器端,端口号后面
|