Mam stronę HTML z przyciskiem. Kiedy klikam ten przycisk, muszę wywołać interfejs API usługi sieci Web REST. Wszędzie próbowałem wyszukiwać w Internecie. Żadnych wskazówek. Czy ktoś może dać mi wskazówkę / Headstart w tej sprawie? Bardzo cenione.
javascript
html
rest
web-services
Shaik Syed Ali
źródło
źródło
Odpowiedzi:
Dziwię się, że nikt nie wspomniał o nowym Fetch API, obsługiwanym przez wszystkie przeglądarki oprócz IE11 w momencie pisania. Upraszcza składnię XMLHttpRequest, którą widzisz w wielu innych przykładach.
API zawiera o wiele więcej , ale zacznij od
fetch()
metody. Wymaga dwóch argumentów:Proste POBIERZ:
Odtworzenie poprzedniej najlepszej odpowiedzi , POST:
źródło
button.addEventListener('click', userAction);
lub<button onclick="userAction()" />
Twój JavaScript:
Twoja akcja przycisku:
Aby uzyskać więcej informacji, kliknij poniższy link (zaktualizowany 2017/01/11)
źródło
xhttp.open("POST", "Your Rest URL Here", false);
, w przeciwnym razie xhttp.responseText nie będzie zawierał wyniku. Ale jak już powiedziano, wkrótce zostanie wycofany.xhttp.setRequestHeader("Content-type", "application/json");
” - To kłamstwo. Nie przekazujesz żadnego kodu JSON dosend()
metody.Oto kolejne wywołanie API REST JavaScript z uwierzytelnianiem przy użyciu json:
źródło
źródło
Myślę, że dodanie, jeśli (this.readyState == 4 && this.status == 200) czekać, jest lepsze:
źródło
Zanim spróbujemy umieścić cokolwiek w interfejsie strony, otwórzmy połączenie API. Zrobimy to za pomocą obiektów XMLHttpRequest, które są sposobem na otwieranie plików i wysyłanie żądania HTTP.
Stworzymy zmienną żądania i przypiszemy do niej nowy obiekt XMLHttpRequest. Następnie otworzymy nowe połączenie metodą open () - w argumentach określimy typ żądania jako GET oraz adres URL punktu końcowego API. Żądanie jest zakończone i możemy uzyskać dostęp do danych wewnątrz funkcji onload. Kiedy skończymy, wyślemy prośbę.
// Utwórz zmienną żądania i przypisz do niej nowy obiekt XMLHttpRequest. var request = nowy XMLHttpRequest ()
źródło
Zwykłym sposobem jest korzystanie z PHP i Ajax. Ale dla twoich wymagań poniżej będzie działać dobrze.
źródło