реагировать Axios 401 несанкционированным, а иногда 403 - PullRequest
0 голосов
/ 25 октября 2019

Я создаю ответную нативную запись приложения с просьбой laravel php api. это работает на почтальоне, но не на Axios. Вы знаете, как я могу решить? Я не могу опубликовать данные формы

Я пробовал другие формы, отправляющие почтовый запрос Axios. но ни один из них не является решением

axios({
            method: 'post',
            url: 'URL',
            params: {
                "api_token": token,
                "name": "talha"
            },
            headers: {
                Accept: 'application/json',
                'Content-Type': 'multipart/form-data'
            }
        }).then(response => alert(response)).catch(err => console.warn(err))


-----
const serverURL = "URL";

const http = axios.create({
    timeout: 1000,
    baseURL: serverURL,
    headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
    },
    withCredentials: false,
    cache: false,
    dataType: "jsonp"
});

data is a formdata

await http.post("/passengers", data, config)
            .then(Response => alert(Response.data))
            .catch(error => console.warn("hata", error))
-----
axios.post( 'URL',
                    data,
                    {
                      headers: {
                          Accept: 'application/json',
                          'Content-Type': 'multipart/form-data'
                      }
                    }
                  ).then(function(){
                    alert('SUCCESS!!');
                  })
                  .catch(function(){
                    alert('FAILURE!!');
                  });

сценарий почтальона:

https://pastebin.ubuntu.com/p/vS54dytpCQ/

1 Ответ

0 голосов
/ 25 октября 2019

Вы можете использовать мою вспомогательную функцию API для разработки тестов.

import axios from 'axios';
import AsyncStorage from '@react-native-community/async-storage';

const api = async (url, method, body) => {
  /**
   * config object for fetch
   */
  const config = {
    method: 'get',
    baseURL: 'BASEURL WILL BE HERE',
    url,
    headers: {
      'Content-type': 'application/json',
      authorization: await AsyncStorage.getItem('auth_token'),
    },
  };

  if (method) {
    config.method = method;
  }
  if (body) {
    config.data = body;
  }

  let response;
  try {
    response = await axios(config);
    return {...response.data};
  } catch (e) {
    throw new Error(e.message);
  }
};

export default api;

Затем используйте эту функцию

import api from 'filpath';

const functionName = async () => {
  try{
   const res = await api('/passengers', 'POST' posData);
   console.log(res.data);
  } catch(e){
     alert('FAILURE!!')
  }
}

Примечание : сохранить токен авторизации в AsyncStorageпри входе пользователя в систему.

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