Laravel React MySQL Routing Issue - PullRequest
       25

Laravel React MySQL Routing Issue

0 голосов
/ 14 февраля 2019

Я пытаюсь сделать так, чтобы я мог зарегистрировать пользователя, но я получаю ошибку 404, предполагая, что это означает, что реакция не может найти маршрут, установленный файлом api.php, есть ли что-то еще, что яотсутствует?Я уже установил в файле package.json, что прокси установлен на "localhost: 8000" (порт, который я выбрал для использования в качестве бэкэнда laravel).Я запутался, почему он не попадает в этот маршрут при отправке.Я чувствую, что я близок, но я новичок в использовании php в качестве бэкэнда, поэтому любая информация будет полезна.

Я также создаю что-то, где пользователь может воспроизводить музыку в приложении, так что естьмаршрут для этого помеченного "магазина", и это не работает по единственной причине, что я не установил этот маршрут (также выдает ошибку 404).

Ниже приведены мои API-маршруты, которые я пытаюсьget response для обнаружения

<?php

Route::post('register','UserController@register');
Route::post('login','UserController@login');
Route::post('profile','UserController@getAuthenticatedUser');

Route::middleware('auth:api')->get('/user', function(Request $request){
    return $request->user();
});

?>

И это часть React моего регистрационного файла.

  import React, { Component } from 'react';
import { register } from './UserFunctions';

class Register extends Component {
    constructor() {
        super()

    this.state = {
        first_name: '',
        last_name: '',
        email: '',
        password: '',
        errors: {},
    }

    this.onChange = this.onChange.bind(this)
    this.onSubmit = this.onSubmit.bind(this)
}

onChange(e) {
    this.setState({ [e.target.name]: e.target.value })
}

onSubmit(e) {
    e.preventDefault()

    const newUser = {
        name: this.state.first_name + ' ' + this.state.last_name,
        email: this.state.email,
        password: this.state.password
    }

    register(newUser).then(res => {
        if (res) {
            this.props.history.push('/login')
        }
    })
}

render() {
    return (
        <div className="container">
            <div className="row">
                <div className="col-md-6 mt-5 mx auto">
                    <form noValidate onSubmit={this.onSubmit}>
                        <h1 className="h3 mb-3 font-wieght-normal">
                            Register
                        </h1>

                        <div className="form-group">

                            <label htmlFor="first_name">First Name</label>
                            <input type="text" className="form-control" name="first_name" placeholder="Enter First Name" value={this.state.first_name} onChange={this.onChange} />

                            <label htmlFor="last_name">Last Name</label>
                            <input type="text" className="form-control" name="last_name" placeholder="Enter Last Name" value={this.state.last_name} onChange={this.onChange} />

                            <label htmlFor="email">Email Address</label><br />
                            <input type="email" className="form-control" name="email" placeholder="Enter Email" value={this.state.email} onChange={this.onChange} />
                            <br />
                            <label htmlFor="password">Desired Password</label><br />
                            <input type="password" className="form-control" name="password" placeholder="Enter Password" value={this.state.password} onChange={this.onChange} />
                        </div>
                        <button type="submit" className="btn btn-lg btn-primary btn-block">Register</button>
                    </form>
                </div>
            </div>
        </div>
    )
}
}

export default Register

У меня определены эти почтовые маршруты, но когда я нажимаю submit в моей регистрационной форме,Я получаю сообщение об ошибке 404 о том, что он не может найти этот маршрут.

1 Ответ

0 голосов
/ 14 февраля 2019

Можете ли вы показать мне ваш

import { register } from './UserFunctions';

файл, чтобы я мог видеть определенный путь URL.

Предполагая, что этот маршрут находится внутри ваших маршрутов / api.php

Route::group(['middleware' => 'api', 'prefix' => 'v1'], function(){
Route::post('register', 'RegisterController@index');
});  

и в файле JS

    import axios from 'axios'

export const register = newUser => {
    return axios
        .post('api/v1/register', newUser,
        {
            headers: { 'Content-Type': 'application/json' }
        })
    .then(res => {
        console.log(res)
    })
    .catch(err => {
        console.log(err)
    })
}   
...