node.js - nodejs post 传值方式
天蓬老师
天蓬老师 2017-04-17 15:00:37
0
2
979

第一种方式:
前端

 $.ajaxSetup({
    contentType: "application/json; charset=utf-8"
  }); 

  $.post('/test', JSON.stringify({
      "Email": "sfpe@163.com",
      "Password": "123456",
      "person": {
        "age": 25
      }
    }), function(data){
    debugger
  }); 

后端

console.log(util.inspect({a: req.body}));
console.log(util.inspect({a: req.body.Email})); 

结果

{ a:
   { Email: 'sfpe@163.com',
     Password: '123456',
     person: { age: 25 } } }
{ a: 'sfpe@163.com' }

第二种方式
前端

$.post('/test', {
    post:JSON.stringify({
      "Email": "sfpe@163.com",
      "Password": "123456",
      "person": {
        "age": 25
      }
    })
  }, function(data){
    debugger
  });  

后端

console.log(util.inspect({a: req.body.post}));
console.log(util.inspect({a: req.body.post.Email}));

结果

{ a: '{"Email":"sfpe@163.com","Password":"123456","person":   {"age":25}}' }
{ a: undefined }       

问题:哪种传给后端的是json格式 ? 我用第二种传了,后端说不是json的格式....用第一种,报了这种错误: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.

我现在都不知道是我的问题 还是后端的问题。

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

모든 응답(2)
伊谢尔伦

교차 도메인 요청 처리

左手右手慢动作

첫 번째는 괜찮지만, 공개 API 및 CORS 구축을 살펴볼 수 있습니다.

콘솔에서 오류를 보고한 이유를 간략하게 설명하겠습니다. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.

POST 메서드에서 headercontent-typeapplication/x-www-form-urlencoded,multipart/form-data, multipart/form-data, text/plain 중 어느 것도 아니기 때문입니다. 설정한 내용은 application/json; charset=utf-8입니다. 이는 이 요청이 "복잡한" 요청임을 의미합니다. 그러면 복잡한 요청이 도메인 간 액세스에 직면할 때 백엔드 서비스가 해당 지원을 제공하도록 요청됩니다. 자세한 내용은 제가 게시한 문서에서 "그렇게 간단한 요청은 아닙니다" 장을 참조하세요. 오랫동안 직접해야합니다. 쓸모가 없습니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿