2017-01-19 6 views
0

Я ищу решение этой проблемы. Я хочу использовать prestashop REST API для конкретной тестовой деятельности. Моя проблема заключается в том, что я не могу аутентифицироваться с помощью этой формы и даже не использовать буфер и DOMParser, потому что я работаю над проектом для Android 4.4.1, а Buffer несовместим.Извлечь данные (json) из API Rest Prestashop в Javascript ES6 (React Native)

Может ли кто-нибудь помочь? Заранее спасибо. С наилучшими пожеланиями.

я сделал что-то вроде этого (два примера ниже):

let API = null; 
const SERVER_ADDRESS = 'http://192.168.1.5/prestashop/api/'; 

// также попытался с "& output_format = JSON" Const лексем = 'X3IIMEP8JJI3PKPXIMEP8JJI3PKPICJMM';

try { 
    fetch(SERVER_ADDRESS, { 
     method: 'GET', 
     headers: { 
      'Authorization': token 
     } 
    })  
    .then(function(response) { 
     if(response.status == 200) return response.json(); 
     else throw new Error('Something went wrong on api server!'); 
    }) 
    .then(function(response) { 
     console.debug(response); 
     // ... 
    }) 
} catch (e) { 
    alert(e); 
} 

========================

import {Buffer} from 'buffer'; 
import {DOMParser} from 'xmldom'; 

let API = null; 
const SERVER_ADDRESS = 'http://192.168.1.5/prestashop/api/'; 
const REST = { 
    CMS: 'content_management_system' 
}; 
const token = 'XGRCBUW745EH4SPHCU92MKL4RGNVPYXY'; 
const AuthorizationString = 'Basic ' + new Buffer(token + ':').toString('Base64'); 

try { 

    componentDidMount({ 
    fetch(SERVER_ADDRESS, { 
     method: 'GET', 
     headers: { 
      'Authorization': AuthorizationString 
     } 
    }).then(function (response) { 
     response.text().then(function (text) { 
      API = new DOMParser().parseFromString(text); 
     }); 
    }); 

    } 

} 

catch (e) { 
    alert(e); 
} 

ответ

0

вы пробовали

headers: { 
     'Authorization': 'Bearer '+token 
    } 

Я не уверен в том, как prestashop выполняет свою аутентификацию, но моя система использует JWT и требует, чтобы маркер имел префикс Bearer

+0

Я собираюсь попробовать! Но я использую «Advanced REST client» (Chrome ext), чтобы получить форму заголовков, он дает что-то вроде: HTTP-заголовки: пропуск «авторизация»: «Basic VFc2RjUxQUHAJHSIIPEO28CS978D3N9DN02U0U1ZZS0k6VFc2RjUxQU». В моей утилите используйте эту основную строку как const для моего заголовка fetch. –

+0

Как правило, носитель используется для аутентификации на основе токенов. Базовый - это если клиент отправляет учетные данные имени пользователя/пароля. – d4rklit3