为什么我会得到这个在一个404节点

问题描述:

我想通过这样的AJAX请求发送插入表单服务器的数据作出反应:为什么我会得到这个在一个404节点

handleUserSubmit: function(user) { 
    var users = this.state.data; 
    user.id = Date.now(); 
    var newUsers = users.concat([user]); 
    this.setState({data: newUsers}); 
    $.ajax({ 
    url: this.props.url, 
    dataType: 'json', 
    type: 'POST', 
    data: user, 
    success: function(data) { 
     this.setState({data: data}); 
    }.bind(this), 
    error: function(xhr, status, err) { 
     this.setState({data: users}); 
     console.error(this.props.url, status, err.toString()); 
    }.bind(this) 
    }); 
}, 

和渲染为完成

ReactDOM.render(
    <UserBox url="../users" pollInterval={2000} />, 
    document.getElementById('data') 
); 

我得到这个奇怪的控制台错误:

POST http://localhost:3000/users 404 (Not Found) 

由于“用户”文件(假设它试图访问用户。 json文件位于一个目录中)。我已经尝试了所有可能的变化: “./users”, “../users”, “#/用户” 等...

该行的代码错误:

url: this.props.url, 

代码上面给出。任何想法发生了什么?

我的node.js代码:

app.post('/users', function(req, res) { 
    fs.readFile(USERDATA, function(err, data) { 
    if (err) { 
     console.error(err); 
     process.exit(1); 
    } 
    var users = JSON.parse(data); 
    var newUser = { 
     id: Date.now(), 
     firstname: req.body.firstname, 
     lastname: req.body.lastname, 
     address: req.body.address, 
     phonenumber: req.body.phonenumber, 
     email: req.body.email, 
     licensestate: req.body.licensestate, 
     licensenum: req.body.licensenum 
    }; 
    console.log(newUser) 
    users.push(newUser); 
    fs.writeFile(USERDATA, JSON.stringify(users, null, 10),    

function(err) { 
     if (err) { 
     console.error(err); 
     process.exit(1); 
     } 
     res.json(users); 
     }); 
     }); 
    }); 
+1

你得到404错误后刷新状态,因为通过'http://本地主机:3000/users'上不存在服务器(即没有文件称为“用户”在根文件夹中 - 我假设你使用webpack开发服务器) – Alik

+0

@Alik我明白,但是,它工作了一段时间,通过根文件夹你的意思是项目文件夹或文件夹从哪个服务器运行?我的users.json文件位于运行服务器的文件夹中。 –

+0

您是否尝试设置'url =“../ users.json”'? – Alik

更新服务器