GraphQL не запрашивает WP API

Заранее спасибо!

Я извлекаю данные из WP Rest API, и когда запускаю сайт wordpress на моем локальном компьютере с адресом http: // localhost: 8000 и попадаю на игровую площадку graphqli на http: // localhost: 3000 / api / graphql и я ввожу запрос, я получаю ожидаемые результаты и могу спокойно использовать данные в ответ, но как только я изменю адрес WP rest API на http://example.com/cms, я получаю сообщение об ошибке. Единственное, что изменилось, - это URL-адрес, так что я предполагаю, что это связано с CORS.

Проверяя окно браузера, нет ошибок CORS, поэтому я могу исключить проблему CORS. Странно то, что когда я вызываю api через почтальона, я получаю ожидаемый ответ, когда я набираю конечную точку в браузере, я получаю ожидаемые результаты, когда я использую конечную точку для разрешения запроса запроса, я получаю сообщение об ошибке, поэтому я начал смотреть на заголовки, так как это единственное, что я вижу, что меняется между запросом почтальона и обычным запросом браузера. для локальной установки wp @ localhost: 8000, глядя на журналы, я вижу, что запрос сделан от почтальона и браузера и axios (используется в преобразователе запросов) на обратной стороне установки wp, которая находится в сети, журналы показывают запрос от почтальона и от браузера до конечной точки api, но не от преобразователя graphql. как мне исправить эту проблему, если преобразователь не отправляет запрос?

это мой преобразователь для запроса

const resolvers = {
    Query: {
        pages: (_parent, _args, _context) => {
            return axios.get(`${wpURL}/wp-json/wp/v2/pages`)
            .then(res => res.data)
                    .catch(error => {
                        console.log("Response Status:", error.response.status);
                        console.log("Response Headers:", error.response.headers);
                        console.log("Response Data:", error.response.data);
                    });
        }
    }
}

graphqlserver:

import {ApolloServer} from 'apollo-server-micro'
import Cors from 'micro-cors'
import {schema} from './schema'

const cors = Cors()
const server = new ApolloServer({schema})
const handler = server.createHandler({path: '/api/graphql'})

export const config = {
    api: {
        bodyParser: false,
    }
}

export default cors(handler)

Терминал:

> next dev

ready - started server on http://localhost:3000
event - compiled successfully
event - build page: /api/graphql
wait  - compiling...
event - build page: /api/graphql
event - compiled successfully

страница:  введите описание изображения здесь

Что я делаю неправильно?


person K4S3    schedule 11.11.2020    source источник
comment
Какие именно ошибки браузер регистрирует в консоли разработчика?   -  person sideshowbarker    schedule 12.11.2020
comment
на консоли браузеров ошибок нет, вызов api работает через все остальные методы (т.е. почтальон, axios). Итак, я думаю, что это должно что-то сделать с отправкой headers, я добавил credentials: include перезагрузку, но все еще та же ошибка graphql   -  person K4S3    schedule 12.11.2020
comment
Если консоль браузера не показывает ошибок, вы можете, по крайней мере, безопасно исключить CORS.   -  person sideshowbarker    schedule 12.11.2020


Ответы (1)


Я понял, что похоже, что если конечная точка graphql извлекает данные, не защищена через SSL, она даже не будет запрашивать данные

person K4S3    schedule 12.11.2020