405 Статус Ngnix React - PullRequest
       5

405 Статус Ngnix React

0 голосов
/ 10 января 2019

Я получаю код состояния 405 при отправке запроса POST из моего приложения реагирования на API-флешку. Я сузил его до Nginx, поскольку могу успешно свернуть маршрут на сервере.

Из того, что я исследовал, я получаю код состояния 405, потому что Nginx считает, что он должен обслуживать статический контент, но я не понимаю, почему это происходит.

Что меня смущает, так это то, что я получаю код состояния 405 только на некоторых конечных точках, но не на других.

колба: рабочие маршруты

@users_blueprint.route('/auth/login', methods=['POST'])
@users_blueprint.route('/classes/list', methods=['POST'])
@users_blueprint.route('/classes/add', methods=['POST'])

колба: проблемные маршруты

@users_blueprint.route('/auth/register', methods=['POST'])
@users_blueprint.route('/schedule/add', methods=['POST'])
@users_blueprint.route('/schedule/add', methods=['POST'])

React App.js

class App extends Component {
  render() {
    return (
          <Switch>
              <Route exact path='/login' component={Login}/>
              <Route exact path='/register' component={Register}/>
              <PrivateRoute
                  path='/'
                  component={Main}
              />
          </Switch>
    );
  }
}

Реагировать на Main.js

...
...
render() {
    const { classes, theme } = this.props;

    return (
        <div className={classes.root}>
            <CssBaseline />
            <Nav mobileOpen={this.state.mobileOpen} handleDrawerToggle={this.handleDrawerToggle}/>
            <MenuBar menuText={this.state.menuTitle} handleDrawerToggle={this.handleDrawerToggle}/>
            <main className={classes.content}>
                <Switch>
                    <Route exact path='/clients/list' render={(props) => <ClientList {...props} setMenu={this.setMenu} />} />
                    <Route exact path='/clients/add' render={(props) => <ClientView {...props} setMenu={this.setMenu} />}/>
                    <Route exact path='/classes/add' render={(props) => <Classes {...props} setMenu={this.setMenu} />} />
                    <Route exact path='/classes/list' render={(props) => <ClassList {...props} setMenu={this.setMenu} />} />
                    <Route exact path='/schedule/list/:id' render={(props) => <ClassSchedule {...props} setMenu={this.setMenu} />} />
                    <Route exact path='/schedule/add/:id'render={(props) => <AddSchedule {...props} setMenu={this.setMenu} />} />
                    <Route exact path='/events/list/:id' render={(props) => <EventsList {...props} setMenu={this.setMenu} />} />
                </Switch>
            </main>
        </div>

    );
}

Ngnix по умолчанию

server {
    listen 80;
    root /var/www/fpt/build;
    server_name blahblah.compute-1.amazonaws.com;
    index index.html index.htm;
    location / {
          proxy_pass          http://localhost:5000/;
          proxy_set_header    Host             $host;
          proxy_set_header    X-Real-IP        $remote_addr;
          proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
          proxy_set_header    X-Client-Verify  SUCCESS;
          proxy_set_header    X-Client-DN      $ssl_client_s_dn;
          proxy_set_header    X-SSL-Subject    $ssl_client_s_dn;
          proxy_set_header    X-SSL-Issuer     $ssl_client_i_dn;
    }
 }

Я попробовал много разных шаблонов в конфигурации nginx, таких как два серверных блока, прослушивающих на разных портах и ​​префиксирующих мои конечные точки с / api / все безуспешно. Любое руководство ценится

edit: вероятно, стоит отметить, что маршруты / schedule / реакции находятся в подкомпонентах

пример журнала:

xxx.xxx.x.xx - - [10/Jan/2019:03:46:59 +0000] "GET /register HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
xxx.xxx.x.xx - - [10/Jan/2019:03:47:00 +0000] "GET /favicon.ico HTTP/1.1" 200 3870 "blahblahblah.compute-1.amazonaws.com/register" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
xxx.xxx.x.xx - - [10/Jan/2019:03:47:04 +0000] "POST /auth/register HTTP/1.1" 405 584 "blahblha.compute-1.amazonaws.com/register" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...