我正在开发一个带有Node的Shopify私人应用程序。js和React并使用graphqlapi发出请求。当我在本地运行它并用NGROK发布它时,一切都很好,但是当我将代码推送到Heroku时,就会出现错误。我的客户好像有点问题,但我想不出来。
我这样设置Apollo客户端(基于本教程https://developers.shopify.com/tutorials/build-a-shopify-app-with-node-and-react/fetch-data-with-apollo):
import ApolloClient from 'apollo-boost';
const client = new ApolloClient({
fetchOptions: {
credentials: 'include'
}
});
构建时,发生了一个关于finch
的错误,所以我修改了代码(基于使用ApolloClientnode.js.“全局找不到读取器,也没有通过读取器”):
import ApolloClient from 'apollo-boost';
import { fetch } from 'node-fetch'
const client = new ApolloClient({
fetch: fetch,
fetchOptions: {
credentials: 'include'
}
});
构建成功了,但是我的GraphQL调用返回错误GraphQL错误只有绝对URL被支持
,所以我尝试这样修改代码:
import ApolloClient from 'apollo-boost';
import { fetch } from 'node-fetch'
const client = new ApolloClient({
fetch: fetch,
fetchOptions: {
credentials: 'include'
},
uri: `https://${shopOrigin}/admin/api/2019-10/graphql.json`
});
现在出现的错误是网络错误:无法获取
与CORS问题。
谁能帮我解决这个问题?如果您需要更多信息,请告诉我。
Shopify教程建议对服务器端使用同构获取。我试着把它包括在下一篇文章里。js端,构建成功。
在我的应用程序中。js
require('isomorphic-fetch');
import ApolloClient from 'apollo-boost';
...
const client = new ApolloClient({
fetchOptions: {
credentials: 'include'
},
});