Почему он не может успешно отправить мои данные, даже если он работает в Postman? - PullRequest
0 голосов
/ 14 июля 2020

Я протестировал свою конечную точку на Postman с правильным ключом и значением, и она работает нормально. Однако, когда я пытаюсь сделать запрос POST в браузере, я получаю ошибку 500.

Оба console.log(id); и console.log(email); печатают правильные значения, поэтому я могу исключить, что это не так. т вопрос. Я также пробовал использовать Axios для выполнения запроса POST, но он продолжал вызывать у меня проблемы, поэтому вместо этого я восстановил fetch. Я открыт для любых предложений по улучшению моего кода :).

Как я могу отправить свой запрос go через браузер? Я, наверное, что-то не замечаю

код внешнего интерфейса:

fileUpload(file) {
    const formData = new FormData()
    let id = Cookies.get("id");
    let email = Cookies.get("email");

    console.log(id);
    console.log(email);

    formData.append('file', file);

    this.setState({
        id: id,
        email: email,
        formData: formData
    });

    let data = {
        "id": this.state.id,
        "email" : this.state.email,
        "formData": this.state.fData
    }

    fetch('http://myendpoint/api/auth/wall-of-fame', {
        method: 'POST',
        body: data
    })
        .then(response => console.log(response))
        .catch(error => { console.error(error) });
}

код внутреннего интерфейса:

public function store(Request $request){
    $filePath = $request->file('file')->getClientOriginalName();
    $id = Auth::user()->id;
    $email = Auth::user()->email;

    $data= [
        'file_path' => $filePath,
        'user_id' => $id,
        'email' => $email
    ];

    DB::table('my db')->insert($data);
    echo "Record inserted successfully.<br/>";
}

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

используйте ответ @ wk24 от Frontend, а в бэкэнд-коде вы используете AUTH для получения идентификатора пользователя вместо $ request, я думаю, вам следует использовать

$request->id; $email = $request->email; Надеюсь, это решит вашу проблему

0 голосов
/ 14 июля 2020

Когда вы используете данные формы для загрузки файла, лучше добавить другие атрибуты к самим данным формы, как показано ниже, чем создавать массив

formData.append('file', file)
formData.set('id', id)
formData.set('email', email)

и далее, в запросе вы можете отправьте formData как тело

fetch('http://myendpoint/api/auth/wall-of-fame', {
    method: 'POST',
    body: formData
})

, это должно решить вашу проблему. Сообщите мне

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...