ошибка недопустимого ключа api api openweathermap [ошибка 401]

#javascript #openweathermap

#javascript #открытая карта погоды

Вопрос:

Я столкнулся с проблемой, связанной с api openweathermap, вызов api отлично работает в браузере, но при использовании его в проекте я получаю ошибку 401, которая упоминается здесь следующим образом: введите описание изображения здесь

У меня нет ни одной из перечисленных в нем проблем

также вот ссылка: http://api.openweathermap.org/data/2.5/weather?zip= 10001,usamp;appid=####

отлично работает в браузере

введите описание изображения здесь

и вот мой app.js:

 /* Global Variables */
let baseURL = 'http://api.openweathermap.org/data/2.5/weather?zip=';
let apiKey = ',usamp;appid=####';



// Create a new date instance dynamically with JS
let d = new Date();
let newDate = d.getMonth() '.'  d.getDate() '.'  d.getFullYear();

document.getElementById('generate').addEventListener('click', performAction);

function performAction(e){
  const temperature =  document.getElementById('zip').value;
  const userResponse = document.getElementById('feelings').value;
  console.log(baseURL temperature apiKey)
  const getTemp = async (baseURL,temperature,apiKey)=>{
      
      const res = await fetch(baseURL temperature apiKey)
    try {

    const data=await res.json();
    return data;
    
    }  catch(error) {
    console.log("error", error);
    // appropriately handle the error
     }
  }
   getTemp(baseURL temperature apiKey).then( res =>{ console.log(res);
   
    postData('/add', {temperature: temperature, date: newDate, userResponse: userResponse});
    updateUI('/all');})
 

когда я console.log() URL-адрес, он работает отлично, но ошибка появляется в запросе get:
введите описание изображения здесь

Комментарии:

1. Скажи мне, что ты не поделился своим секретным ключом.

2. не уверен, что вы имеете в виду, но если лимит превышен, мы получаем еще одну ошибку

3. @emix мы получаем ошибку 429

4. хорошо .. в основном то, что он говорит … ключ api, который вам дали, — это не то, что вы должны здесь выставить .. Я ПРЕДЛАГАЮ Вам ИЗМЕНИТЬ ЭТО, потому что не у всех такие сердца, как у нас

Ответ №1:

getTemp является ли проблема
, для которой первым аргументом getTemp является полный URL-адрес (однако функция объединяет 3 аргумента для URL-адреса выборки)
, поэтому 2 из этих значений будут неопределенными, и выборка закончится как (baseURL temperature apiKey) undefined undefined вместо baseURL temperature apiKey

Решение заключается в том, чтобы при вызове getTemp использовать запятые, чтобы они заполняли соответствующие места аргументов в функции

 /* Global Variables */
let baseURL = 'http://api.openweathermap.org/data/2.5/weather?zip=';
let apiKey = ',usamp;appid=####';



// Create a new date instance dynamically with JS
let d = new Date();
let newDate = d.getMonth() '.'  d.getDate() '.'  d.getFullYear();

document.getElementById('generate').addEventListener('click', performAction);

function performAction(e){
  const temperature =  document.getElementById('zip').value;
  const userResponse = document.getElementById('feelings').value;
  console.log(baseURL temperature apiKey)
  const getTemp = async (baseURL,temperature,apiKey)=>{
      
      const res = await fetch(baseURL temperature apiKey)
    try {

    const data=await res.json();
    return data;
    
    }  catch(error) {
    console.log("error", error);
    // appropriately handle the error
     }
  }
   getTemp(baseURL,temperature,apiKey).then( res =>{ console.log(res);
   
    postData('/add', {temperature: temperature, date: newDate, userResponse: userResponse});
    updateUI('/all');})
 

Комментарии:

1. Я увидел неопределенный неопределенный и не мог понять причину, теперь это работает, большое вам спасибо!

2. @TheBombSquad пожалуйста, удалите ключ api

3. Я не задавал вопрос @TheBombSquad

4. @TheBombSquad Я не думаю, что это так очевидно