přístup k datům (databázi) na jiném serveru

0

Na stránkách na serveru u wedosu bych potřeboval zobrazovat data z databáze, která je na jiném severu.
Na wedosu pomocí ajaxu volám php skript na vzdáleném serveru, který by měl data vracet. Volání je neúspěšné, vždy se mi v konzole zobrazí:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https:/www.xxxxxxxx.cz (Reason: CORS header ‘Access-Control-Allow-Origin’ missing). Status code: 200.

Zkoušel jsem v .htaccess (ve složce, v níž je volající skript případně i v kořenu mého webu) na straně wedosu nastavit

<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin „*“
</IfModule>

Zkoušel jsem to nastavovat i pomocí php header (v syntaxi PHP), nic nepomáhá. Googlím už půl dne, zkouším různé varianty, neúspěšně.
Mohli byste mi poradit?

Role: Zákazník
ZK288086 Odpověděl na otázku 1. 7. 2022
0

Jasně chybka 🙂

Myšleno doplnit na straně serveru – tedy php script který data odesílá.

Základní kód na doupravení:

<?php
    if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
        header('Access-Control-Allow-Origin: *');
        header('Access-Control-Allow-Methods: POST, GET, DELETE, PUT, PATCH, OPTIONS');
        header('Access-Control-Allow-Headers: token, Content-Type');
        header('Access-Control-Max-Age: 1728000');
        header('Content-Length: 0');
        header('Content-Type: text/plain');
        die();
    }
     header('Access-Control-Allow-Origin: *');
    header('Content-Type: application/json');
     $ret = [
        'result' => 'OK',
    ];
    print json_encode($ret);

Role: Zákazník
TJ285257 Změnil status na publikováno 1. 7. 2022
0

To jsem psal ve své otázce, že jsem už taky zkoušel.

Jen abych si to upřesnil. Mám tuto strukturu php souboru:

<?php header(‚Access-Control-Allow-Origin: *‘); ?>

<button  onclick=“volejCizince()“> zavolej cizince</button>

<script>
    function volejCizince() {   // a zde volám pomocí AJAXu vzdálený server }
</script>

A toto mi hlásí ten problém ‘Access-Control-Allow-Origin’ missing.
Ještě je zatím informace Status code 200, což chápu tak, že ten PHP script na tom vzáleném serveru vidí.

Role: Zákazník
TJ285257 Změnil status na publikováno 1. 7. 2022
0

Před volaní ajax scriptu přidejte

header("Access-Control-Allow-Origin: *");

Role: Zákazník
TJ285257 Změnil status na publikováno 1. 7. 2022