无法访问我的本地Rest API(使用koa)

时间:2017-10-07 19:58:14

标签: node.js xmlhttprequest koa

我尝试使用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,它运行正常。根据该实验 - 我的服务器出现问题。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您忘记指定网址字符串的协议部分,例如:

...
regRequest.open('POST', 'http://localhost:3000/reg_new_user', true);