• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przepisanie komendy Curl na PHP albo JavaScript

Object Storage Arubacloud
0 głosów
420 wizyt
pytanie zadane 22 kwietnia 2022 w Programowanie przez pserl Nowicjusz (120 p.)
zmienione kategorie 22 kwietnia 2022 przez ScriptyChris

Witajcie, potrzebuje napisać obsługę zapytania GET na stronie internetowej, Z CMD curl -k --user login:haslo https://przykladwa.strona , pokazuje idealnie co ma pokazać. Jak przenieść tą komendę na php bądź js? Konieczne są parametry -k --user ponieważ bez nich pojawia się błąd : 

has been blocked by CORS policy: Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight response.

2 odpowiedzi

+1 głos
odpowiedź 22 kwietnia 2022 przez rafal.budzis Szeryf (85,260 p.)

Jeśli masz błąd :

has been blocked by CORS policy: Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight response.

To być może prawidłowo przepisałeś całość. Jednak przeglądarki mają dodatkowe zabezpieczenia na podstawie nazw domen i nagłówków - CORS. Nawet jeśli w konsoli zapytanie działa to w przeglądarce możesz mieć problem z polityką CORS ;)  O co chodzi? W dużym skrócie dzieki takiemu zabezpieczeniu nie możesz pobierać danych zwróconych przez API. Zabezpiecza to strony przed wyłudzeniem danych z innej strony gdzie jesteś zalogowany. 

Co trzeba zrobić? API które odpytujesz musi zwrócić w nagłówkach nazwę domeny dla której przeglądarka ma pozwalać na pobieranie treści. 

Jeśli jest to twój backend poczytaj o CORS. Jeśli chcesz obejść zabezpieczenie zrób serwer proxy który zmieni odpowiednio nagłówki. 

 

0 głosów
odpowiedź 22 kwietnia 2022 przez Wiciorny Ekspert (270,170 p.)
edycja 22 kwietnia 2022 przez Wiciorny

Przykład dla zapytania CURL 

curl -X POST https://reqbin.com/echo/post/json
	 -H "Content-Type: application/json" 
     -d "{\"login\":\"my_login\",\"password\":\"my_password\"}"

rezultat zapisany w JS: zależy czy korzystacie z jakiegoś API< czy jest to klasycznie AJAX, może XMLHttpRequest, XHR 

https://www.w3schools.com/js/js_json_http.asp

var url = "https://reqbin.com/echo/get/json";

var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader('Access-Control-Allow-Origin', '*');

xhr.onreadystatechange = function () {
   if (xhr.readyState === 4) {
      console.log(xhr.status);
      console.log(xhr.responseText);
   }};

xhr.send({obiekt json danych klucz-wartosc np. });

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest tu masz też informacje jak używać i dodawać argumenty, zapraszam do lektury 

1
komentarz 22 kwietnia 2022 przez rafal.budzis Szeryf (85,260 p.)

Ale staroć wygrzebałeś :P Od ponad 5 lat nie trzeba już używać XMLHttpRequest 

https://caniuse.com/?search=fetch

 

 

komentarz 22 kwietnia 2022 przez Wiciorny Ekspert (270,170 p.)
ale nie mowie że trzeba, więc nie łap mnie za słowa [dzieki za wzmiankę/korektę, zeby potem też nie było, że oburzam się czy coś]Niby staroć, a byłem jeszcze latem zeszłego roku pomiędzy dwoma projektami gdzie, nie mogłeś używac fetch, był to czysty ajax, czasami tylko http- wspieranie :D wyobraź sobie Explorera w wersji 8.0 oraz stosowanie czegoś takiego, co nigdy nie spodziewałem się że bedę pisał czyli 'dojo popup' i biblioteki dijit dojo :D https://www.google.com/search?q=digit+dojo&oq=digit+dojo&aqs=chrome..69i57j0i10i22i30l6.1744j0j7&sourceid=chrome&ie=UTF-8

Takie rzeczy się zdarzają haha
komentarz 22 kwietnia 2022 przez rafal.budzis Szeryf (85,260 p.)
Nie powiedziałem że mówisz że trzeba :) Drugie zdanie nie dotyczyło twojej wypowiedzi to takie stwierdzenie faktów ;)

W 2022 roku wspierasz IE8 ? :o Zaciekawiłeś mnie :D Co się programuje dla przeglądarki która nie jest wspierana i której nie da się zainstalować na wspieranych systemie operacyjnym?

Podobne pytania

0 głosów
1 odpowiedź 977 wizyt
pytanie zadane 25 kwietnia 2019 w PHP przez sensor Użytkownik (680 p.)
0 głosów
1 odpowiedź 429 wizyt
pytanie zadane 20 maja 2017 w C# przez therrax Nowicjusz (240 p.)
0 głosów
1 odpowiedź 597 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...