S-a sugerat să postezi aici de la stackoverflow. Iată speranța.
Există două componente ale aplicației mele:
- O „aplicație” DO care găzduiește un site web react. Acest site face cereri către:
- O „Droplet” DO care găzduiește un API
Când încerc să mă conectez la Droplet din mediul meu de dezvoltare, datele sunt returnate și aplicația react implementată local afișează datele.
Cu toate acestea, când implementez aplicația react în aplicația DO și încerc să fac aceeași solicitare, primesc eroarea: Respingere netratată (TypeError): Nu este permis să solicite resursă
. Consola browserului oferă următoarele.
Nu este permis să solicite resursă
Fetch API nu poate încărca http://xxx.xxx.xxx.xxx:8080/search/ din cauza verificărilor de control al accesului
Respingere netratată de promisiune: TypeError: Nu este permis să solicite resursă.
Am încercat atât IP-ul public pentru Droplet-ul care găzduiește API-ul, cât și IP-ul privat. Aceeași problemă apare odată ce aplicația este implementată în aplicația DO.
Eroare
Ce zone pot căuta unde ar putea apărea o problemă?
const fetchReferences = async () => {
fetch(âhttp://xxx.xxx.xxx.xxx:8080/search/â, {. //aceasta este linia care dă erori.
metoda: âPOSTâ,
body: JSON.stringify({
url: searchState.searchCriteria
Pe API-ul python, permit totul să treacă:
aplicație = Balon (nume)
CORS(aplicație, resurse={r"/â: {"originsâ: ââ}})
api = Api(aplicație)
parser = reqparse.RequestParser()
Logare
Jurnal de ieșire Refgator API
Jurnalul erorilor API Refgator
Probleme CORS?
Asa de...
De ce o instanță a site-ului web încărcată local cu fire se conectează cu succes la picătură?
Bănuiesc că acest lucru se poate datora căilor partajate cu Droplet-ul care găzduiește API-ul.
De ce o instanță a site-ului web încărcată pe platforma DO App se conectează fără succes la picătură?
Am văzut postări referitoare la problemele CORS între picături și aplicații găzduite pe Digital Ocean. Vedea Aici și Aici.
Cunoștințele mele despre CORS sunt inexistente, așa că confirmarea acestui lucru necesită extrem de consumatoare de timp.
Cel mai bine ar fi să mutați repo-ul înapoi în bitbucket și să încercați să utilizați o picătură, mai degrabă decât o aplicație.