Wpis z mikrobloga

#frontend #backend #javascript #webdev #restdbio

Testuję restdb.io

Nie działa rest api na localhost, chociaż łączę zgodnie z instrukcją "Connect from a development web app running on localhost":
https://restdb.io/docs/connect-to-your-online-database#connectXfromXaXdevelopmentXwebXappXrunningXonXlocalhost

A ze zwykłego linka otwartego w nowej karcie w przeglądarce działa - to korzysta z "Connect from a user session".
Działa też jak użyję "Wyślij ponownie" w devTools.
Czyli endpoint jest ok.

Co może być nie tak?
  • 13
@lobo:
Serwer lokalny mam z (o ile to istotne):

http-server -p 8080 -c-1 --cors
Ustawienia w restdb.io:
Web page API keys (CORS)

Key Description Resource Methods Origin Realtime Pub Realtime Sub
123123123123123123123123 xxx /** GET,POST,PUT,DELETE *

Kod XHR (też z przykładu, jak zadziała to przerobię na fetch):

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === 4) {
console.log(this.responseText);
}
});

xhr.open("GET", "[https://inna-nazwa.restdb.io/rest/colname/5f4ae41469eda85700003dbe");](https://inna-nazwa.restdb.io/rest/colname/5f4ae41469eda85700003dbe");)
xhr.setRequestHeader("content-type", "application/json");
Pobierz look997 - @lobo:
Serwer lokalny mam z (o ile to istotne):
http-server -p 8080 -c-1 ...
źródło: comment_1598798853NpPYWLLntoanyXIbV2VswI.jpg
@look997: wygląda, że nie jest poprawnie ustawiany header po stronie serwera. Ale na szybko stworzyłem konto i działa tylko musiałem stworzyć sobie kolekcje

var myCorsApiKey = "...";
var data = null;

var xhr = new XMLHttpRequest();
xhr.withCredentials = false;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === 4) {
console.log(this.responseText, 'aaa');
}
});

xhr.open("GET", "https://....restdb.io/rest/a");
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("x-apikey", myCorsApiKey);
xhr.setRequestHeader("cache-control", "no-cache");

xhr.send(data);
@lobo:
Ogólnie coś z tym po stronie serwera, bo dane są, zwracają się normalnie przy innych metodach, gdzie blokada nie obowiązuje.

To jak można tam skonfigurować to inaczej? Widzisz przecież screen:
https://www.wykop.pl/cdn/c3201142/comment_1598798853NpPYWLLntoanyXIbV2VswI.jpg

To może pokaż screen ze strony https://restdb.io/account/databases/inna-nazwa/api?
Stamtąd jest ten screen.

Ja mam stworzoną kolekcję i element z niej się zwraca jak użyć "Wyślij ponownie".

Nawet testowałem i działa też, z poziomu userScriptu, taki kod:

GM_xmlhttpRequest({
method:"GET",
"[https://inna-nazwa.restdb.io/rest/colname/5f4ae41469eda85700003dbe",](https://inna-nazwa.restdb.io/rest/colname/5f4ae41469eda85700003dbe",)
headers:
@lobo: W sumie też widziałem ten przykład, ale kod wcześniej już miałem skopiowany z tego innego miejsca i go się trzymałem.

Może im zgłoszę że true w tych przykładach to błąd, bo chyba o coś innego im tam nie chodziło.
@lobo: Aha, ok.
Tylko nadal w tym przykładzie tego nie musieli dodawać, bo tam nie ma żadnego kontekstu. Jak dla mnie z tego przykładu mogą usunąć tę linijkę.