如何向本地服务器发出“发布”请求?

时间:2019-10-27 21:48:04

标签: javascript node.js webpack

我在Webpack4上捆绑了项目,我需要从表单输入中获取一些信息并将其写入txt文件。 我是开发的新手,如果问题很愚蠢,那就对不起

因此,我创建了node.js服务器,需要在其上发布此数据,然后将其写入txt文件。当我尝试向本地主机发出“发布”请求时,CORS阻止了错误“从源地址“ http://localhost:9000”访问“ file:/// E:/ server / localhost:3000”处的XMLHttpRequest政策:跨协议请求仅支持以下协议方案:http,数据,chrome,chrome扩展名,https。如何解决此问题。


    const http = require('http');
    const fs = require('fs');
    const path = require('path');

    const server = http.createServer((req, res) => 
        {res.writeHead(200, {
            'Content-Type':'text/html'
        })
        res.end('ggwp')}
        )
    server.listen(3000, () =>{
        console.log('ok')
    })    

```here's my server

    const bookForm = document.querySelector(".book-form");
    const select = document.querySelector(".select");
    const name = document.getElementsByName('name');
    const number = document.getElementsByName('phone_number');
    const xhr = new XMLHttpRequest();

    export let fragment = '';

    export function abc() {
      bookForm.addEventListener("submit", e => {
        e.preventDefault();
        console.log(fs);
        fragment += name[0].value + ' ' +number[0].value + ' ' + select.options[select.selectedIndex].text;
        xhr.open('POST', 'file:///E:/server/localhost:3000', true)
        xhr.send(fragment)

    xhr.onreadystatechange = function() { // (3)
      if (xhr.readyState != 4) return;

      if (xhr.status != 200) {
        console.log(xhr.status, xhr.statusText)
        alert(xhr.status + ': ' + xhr.statusText);
      } else {
        alert(xhr.responseText);
      }

    }
      });

2 个答案:

答案 0 :(得分:0)

您需要将CORS库添加到您的项目中 CORS library usage

添加以下代码,其中包含CORS库 app.use(cors({ allowedOrigins: [ 'http://localhost:9000' ] }));

答案 1 :(得分:-1)

尝试将您的代码更改为xhr.open('POST', 'localhost:3000', true)