2017-01-17 11 views
1

Если вы не используете vanilla js, я всегда использовал jQuery для создания AJAX запросов. Теперь, с момента принятия React, чтобы сделать запросы AJAX, нет необходимости использовать всю библиотеку jQuery для выполнения этих запросов, поэтому нам рекомендуется использовать либо js ', встроенный в метод fetch, axios или многие другие.Выполнение запроса POST с использованием выборки

Я пытался сделать запрос POST, используя fetch. Я могу сделать это с помощью axis, но не извлечения.

axios.post('https://reqres.in/api/login', { 
    "email": "[email protected]", 
    "password": "cityslicka" 
}) 
.then(function (response) { 
    console.log(response); 
}) 
.catch(function (error) { 
    console.log(error); 
}); 

Код по Вардар выглядит так, но когда я пытаюсь что я считаю, что то же самое, используя fetch он не работает. Может ли кто-нибудь увидеть то, что мне не хватает? Значения публикуются, но API возвращает ошибку, поэтому я должен делать что-то неправильно.

var data = { 
    "email": "[email protected]", 
    "password": "cityslicka" 
} 

fetch("https://reqres.in/api/login", { 
    method: "POST", 
    body: JSON.stringify(data) 
}) 
.then(function(response){ 
    return response.json(); 
}) 
.then(function(data){ 
    console.log(data) 
}); 
+0

Вы уверены, что API хочет тело JSON, а не URL-закодирован как нормальные формы сообщений? – Barmar

+0

Что означает «не работает»? Происходит ли запрос? Не удается ли получить значения? – Osman

+0

@Osman Я обновил вопрос –

ответ

1
var headers = { 
    'Content-Type':'application/json',                         
    Access-Control-Origin': '*' 
} 

попробуйте добавить эти строки в заголовках.

var data = { 
    "email": "[email protected]", 
    "password": "cityslicka" 
} 

fetch("https://reqres.in/api/login", { 
    method: "POST", 
    headers: headers, 
    body: JSON.stringify(data) 
}) 
.then(function(response){ 
    return response.json(); 
}) 
.then(function(data){ 
    console.log(data) 
}); 
+0

не могли бы вы объяснить, почему «заголовки» нужно было добавить? –

0

Использование стрелок функции:

fetch(`http://myapi.com/user/login`, { 
     method: 'POST', 
     headers: { 
      'Accept': 'application/json', 
      'Content-type': 'application/json', 
     }, 
     body: JSON.stringify({ 
      login: login, 
      senha: password 
     }) 
    }).then(response => response.json()) 
     .then((responseJson) => console.log(responseJson)) 
    }).catch(error => console.log(error)); 
+0

Измените строку URL на одинарные кавычки ** '** вместо ** '** – teeyo

 Смежные вопросы

  • Нет связанных вопросов^_^