Как вызвать веб-api в Angular, и это будет с IP-адресом пользователя

#angular

Вопрос:

Я использую Angular 10. Я пытаюсь найти способ вызова внешнего API с помощью метода POST WEB API. В то время как мне нужен внешний API, чтобы иметь возможность распознавать вызов с IP-адреса пользователя. Есть ли способ, способный это сделать?

Ответ №1:

Вы можете использовать либо HttpClient Angular, либо встроенный fetch метод из JavaScript.

Пример HttpClient:

 // import HttpClientModule inside your app.module

// inside your service or component.
constructor(private http: HttpClient) {}

callApi() {
    return this.http.post("http://myhostlink/api/path");
}
 

Пример выборки (из документов):

 // Example POST method implementation:
async function postData(url = '', data = {}) {
  // Default options are marked with *
  const response = await fetch(url, {
    method: 'POST', // *GET, POST, PUT, DELETE, etc.
    mode: 'cors', // no-cors, *cors, same-origin
    cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
    credentials: 'same-origin', // include, *same-origin, omit
    headers: {
      'Content-Type': 'application/json'
      // 'Content-Type': 'application/x-www-form-urlencoded',
    },
    redirect: 'follow', // manual, *follow, error
    referrerPolicy: 'no-referrer', // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url
    body: JSON.stringify(data) // body data type must match "Content-Type" header
  });
  return response.json(); // parses JSON response into native JavaScript objects
}
 

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

1. На самом деле я действительно пытаюсь это сделать, но у этого будет проблема с перекрестным происхождением. Я пытаюсь получить доступ к API, который находится на другом хосте.

2. Эта проблема должна решаться на стороне сервера, а не на стороне клиента