为什么 fetch 函数说我必须使用绝对 url,即使我已经设置了代理?
Why is the fetch function saying, that I have to use absolute urls, even if I have set a proxy?
目前我正在编写一个 Shopify 应用程序。我想从我在 server.js 的商店中获取所有产品,但每次它输出一条消息,说只支持绝对 url。注册的 Webhook 应该可以获取我店内的所有产品。
Error: only absolute urls are supported
这是我的 javascript (server.js)
const { default: proxy } = require('@shopify/koa-shopify-graphql-proxy');
const { ApiVersion } = require('@shopify/koa-shopify-graphql-proxy');
app.prepare().then(() => {
const server = new Koa();
const router = new Router();
server.use(session(server));
server.keys = [/** Shopify Keys */];
server.use(
createShopifyAuth({
/**
* Webhook
*/
}),
);
const webhook = receiveWebhook({ secret: SHOPIFY_API_SECRET_KEY });
router.post('/webhooks/products/create', webhook, async (ctx) => {
await fetch('/graphql', {
credentials: 'include',
body: allProducts
})
.then((data) => {
console.log(data)
})
.catch((err) => {
console.log(err)
})
console.log('received Webhook: ', ctx.state.webhook);
})
server.use(router.allowedMethods());
server.use(router.routes());
console.log(proxy({ version: ApiVersion.Unstable }))
server.use(proxy({ version: ApiVersion.Unstable }))
server.listen(port, () => {
console.log(`> Ready on localhost:${port}`)
})
})
我使用的是 npm 包 shopify koa 代理中的示例 link here
如何使用我正在使用的代理发送 http 请求?
问题正是错误所说的,获取需要绝对 url。
有没有代理与fetch
api无关,它不知道
给它一个绝对值URL
目前我正在编写一个 Shopify 应用程序。我想从我在 server.js 的商店中获取所有产品,但每次它输出一条消息,说只支持绝对 url。注册的 Webhook 应该可以获取我店内的所有产品。
Error: only absolute urls are supported
这是我的 javascript (server.js)
const { default: proxy } = require('@shopify/koa-shopify-graphql-proxy');
const { ApiVersion } = require('@shopify/koa-shopify-graphql-proxy');
app.prepare().then(() => {
const server = new Koa();
const router = new Router();
server.use(session(server));
server.keys = [/** Shopify Keys */];
server.use(
createShopifyAuth({
/**
* Webhook
*/
}),
);
const webhook = receiveWebhook({ secret: SHOPIFY_API_SECRET_KEY });
router.post('/webhooks/products/create', webhook, async (ctx) => {
await fetch('/graphql', {
credentials: 'include',
body: allProducts
})
.then((data) => {
console.log(data)
})
.catch((err) => {
console.log(err)
})
console.log('received Webhook: ', ctx.state.webhook);
})
server.use(router.allowedMethods());
server.use(router.routes());
console.log(proxy({ version: ApiVersion.Unstable }))
server.use(proxy({ version: ApiVersion.Unstable }))
server.listen(port, () => {
console.log(`> Ready on localhost:${port}`)
})
})
我使用的是 npm 包 shopify koa 代理中的示例 link here
如何使用我正在使用的代理发送 http 请求?
问题正是错误所说的,获取需要绝对 url。
有没有代理与fetch
api无关,它不知道
给它一个绝对值URL