我尝试使用Koa.js创建服务器:
const Koa = require('koa');
const router = require('koa-router');
const cors = require('koa-cors');
const app = new Koa();
const _ = router();
app.use(cors({origin: '*'}));
app.listen(3000, () => console.log('App running'));
_.post('/reg_new_user', postMessage);
function *postMessage() {
this.body = 'New user was added' };
app.use(_.routes());
然后,我将从该服务器获得简单的响应。创建了具有表单元素(id ='regForm')的简单HTML页面。使用以下代码我试图提出请求:
const regForm = document.getElementById('reg_form');
function sendRegistrationData(event) {
const data = new FormData(regForm);
event.preventDefault();
const regRequest = new XMLHttpRequest();
regRequest.open('POST', 'localhost:3000/reg_new_user', true);
regRequest.send(data);
regRequest.onload = () => console.log(regRequest.responseText);
};
regForm.addEventListener('submit', sendRegistrationData);
但是,当请求发生时,控制台中会显示错误消息:
无法加载localhost:3000 /:仅交叉源请求 协议方案支持:http,数据,chrome,chrome-extension, HTTPS
当然,我已经在我的请求中更改了url parametr到其他API,它运行正常。根据该实验 - 我的服务器出现问题。
我做错了什么?
答案 0 :(得分:0)
您忘记指定网址字符串的协议部分,例如:
...
regRequest.open('POST', 'http://localhost:3000/reg_new_user', true);