>source

안녕하세요. 저는 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>...

Referrer-Policy, CORS, CSP 및 404 Not Found 오류는 완전히 다른 네 가지입니다. (그리고 당신이 검색 엔진을 사용한다면 그것들은 모두 꽤 잘 문서화되어 있습니다).

Quentin2022-01-12 01:30:53

안녕 Quentin, 시간을 내어 내 게시물을 읽고 답장을 보내주셔서 감사합니다. 이 문제를 조사하고 임씨의 code를 이 효과로 수정했지만 소용이 없었습니다. POST를 사용하면 보안이 기본값으로 돌아갑니다.

Jane Swannington2022-01-12 01:30:53
  • 이전 android : 다중 코루틴 지연이 있는 테스트 기능
  • 다음 python : Google Cloud Vertex AI Notebook 예약 실행에서 code가 실행되지 않습니까?