Как сделать вызовы Ax ios в локальной среде разработки с помощью Nativescript (Vue)? - PullRequest
0 голосов
/ 15 января 2020

Я работаю над созданием приложения Nativescript, которое работает с бэкэнд-API (работает Laravel). Для разработки приложение обслуживается локально с помощью Laravel Valet на jwt9.test.

У меня проблемы с Ax ios, принимающим мой самозаверяющий сертификат. Приведенный ниже код прекрасно работает при обращении к внешнему API:

const axios = require('axios').default;
const instance = axios.create({
     baseURL: 'https://jsonplaceholder.typicode.com/posts/',
});

instance.get('/1',
   {
     'email': email,  // relic for local instance
     'password': password // relic for local instance
   }, {
   "headers": {
     'Content-Type': 'application/json',
   }
})
   .then(function (response) {
       console.log("Dilly Dilly: " + JSON.stringify(response));
   })
   .catch(function (error) {
       console.log("Zut: " + error)  
   });
}

Когда я перевожу его на локальный сервер (сменив на пост с соответствующим URL-адресом, который отлично работает через Postman), я получаю:

JS: 'Zut: Error: Request failed with status code null'

Мои исследования показывают, что Ax ios не любит самоподписанные сертификаты.

Я видел некоторые решения, которые включают загрузку LaravelValetCASelfSigned.pem в эмулятор и / или загрузку Ax ios, но подробностей немного, и документация не полная (я относительно новичок во всем этом так что, если вы ветеринар и думаете, что это просто, пожалуйста, объясните!).

За https://github.com/axios/axios/issues/535, если я попробую предложенный подход, установлю модуль узла "https" и загрузлю up:

var https = require('https');

, в то время как также в моей просьбе:

{
     "httpsAgent": new https.Agent({ rejectUnauthorized: false })
},

Мне сказали, что TypeError: https.Agent is not a constructor. Отбрасывание «новых» результатов приводит к https.Agent is not a function.

Для не-разработчика, я чувствую, что добился огромного прогресса, но простая проблема в том, как создать функциональную локальную среду разработки с использованием относительно распространенных инструментов, таких как Nativescript, Laravel, Valet и Axe ios ускользает от меня.

Есть предложения? Я не хочу иметь живую среду разработки.

1 Ответ

0 голосов
/ 30 января 2020

@ pz90 предложил Нгрок, и это был ответ, конечно. Я слишком усложнял вещи, запутываясь в SSL-сертификатах, требованиях Ax ios, требованиях почтальона и т. Д. c ...

Короче говоря, будьте уверены, что вы не защищены (если защищены ) ваш сайт камердинера, используя: valet unsecure [sitename]

с [sitename] полученным через: valet links

Оттуда вы можете ... valet share

.. .и попал на ваш локальный сайт (и в БД, если ваши хуки настроены правильно), используя вариант кода на github Ax ios. Ниже работает, fwiw.

        const axios = require('axios').default;

        axios.defaults.baseURL = 'https://xxxx.ngrok.io';
        axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

        // Send a POST request
        axios({
            method: 'post',
            url: '/api/login',
            data: {
                email: email,
                password: password,
            }
        }).then(function (response) {
            console.log(response.data);  //Outputs API response in CL to verify functionality.
        });

Я благодарен за этот сайт и его участников. Спасибо.

...