안녕하세요. 저는 Greg Lims의 Node.js에 대한 책을 통해 일하고 있습니다. mongodb와 나는 양식이 데이터를 라우트에 보내는 데 사용될 때 조금 멈췄습니다. 그러면 라우트가 양식의 body.title을 콘솔로 처리할 것입니다. 상태 404를 찾을 수 없음이 표시됩니다. 리퍼러 정책strict-origin-when-cross-origin. CSP 및 CORS에 대한 교육이 필요하지만 어디서부터 시작해야 할지 모르십니까?
내 index.js 및 form.html ...
const express= require('express')
const bodyParser= require('body-parser');
const app= new express()
const cors= require('cors');
app.use(express.static('public'))
const path= require('path');
const { header }= require('express/lib/request');
app.use(express.static(__dirname + '/public'))
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: false }))
app.use(cors({
origin: "*",
})
);
app.use((req, res, next)=> {
res.append('Access-Control-Allow-Origin', ['*']);
res.append('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.append('Access-Control-Allow-Headers', 'Content-Type');
next();
});
app.listen(4000,()=>{
console.log('App listening on port 4000')
})
app.get('/',(req,res)=>{
console.log('get root')
res.sendFile(path.resolve(__dirname,('pages/index.html')))
})
app.get('/about.html',(req,res)=>{
console.log('get about')
res.sendFile(path.resolve(__dirname,('pages/about.html')))
})
app.get('/post.html',(req,res)=>{
console.log('get post')
res.sendFile(path.resolve(__dirname,('pages/post.html')))
})
app.get('/store',(req,res)=>{
res.set("Content-Security-Policy", "default-src 'self', form-action 'self',script-src 'self'");
console.log('store post')
console.log(req)
console.log(req.body)
console.log(req.body.title)
res.redirect('/')
})
my form
<!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Security-Policy" content="default-src 'self', form-action 'self',script-src 'self'"> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Create</title> </head> <body> <H1>Create Page</H1> <form action="/store" method="POST"> <div class="control-group"> <div class="form-group floating-label-form-group controls"> <label>Title</label> <input type="text" class="form-control" placeholder="Title" id="title" name="title" > </div> </div> </div> <br> <div class="form-group"> <button type="submit" class="btn btn-primary" id="sendMessageButton">Send</button> </div> </form> </div> </div> </div> <meta http-equiv="Content-Security-Policy" content="default-src 'http://localhost'"> <!--<meta http-equiv="Content-Security-Policy" content="default-src 'self'"> --> <hr> </body> </html>...
안녕 Quentin, 시간을 내어 내 게시물을 읽고 답장을 보내주셔서 감사합니다. 이 문제를 조사하고 임씨의 code를 이 효과로 수정했지만 소용이 없었습니다. POST를 사용하면 보안이 기본값으로 돌아갑니다.
Jane Swannington2022-01-12 01:30:53
Referrer-Policy, CORS, CSP 및 404 Not Found 오류는 완전히 다른 네 가지입니다. (그리고 당신이 검색 엔진을 사용한다면 그것들은 모두 꽤 잘 문서화되어 있습니다).
Quentin2022-01-12 01:30:53