我正在运行apollo-server-express,一切正常。我有2个端点 - 1个用于graphiql(/ graphql),1个用于非交互式(/ client)查询(我知道 - 在我开始使用apollo之前它们被称为。)
engine.listen({
port: port,
expressApp: fidserver.app,
graphqlPaths: ['/graphql', '/client']
});
但是,当我介绍阿波罗引擎
时{"errors":[{"message":"Unsupported Content-Type from origin: text/html"}]}
一切都运行正常 - 除非我在浏览器上使用查询作为参数在浏览器网址上刷新graphiql。
然后我收到此错误
<vaadin-grid-column width="15em">
<template class="header">
<vaadin-grid-filter aria-label="Inventory" path="" value="[[_filterItems]]">
<vaadin-text-field slot="filter" placeholder="Item" value="{{_filterItems}}" focus-target></vaadin-text-field>
</vaadin-grid-filter>
</template>
<template>[[item]]</template>
</vaadin-grid-column>
在没有运行apollo引擎的情况下执行相同的操作不会导致错误。如果再次运行查询,或者在没有查询和变量参数的情况下刷新浏览器,无论是否启用Apollo Engine,一切都可以正常工作。
当错误发生时,我可以从我的服务器日志中看到它试图返回一个包含一些javascript的反应网页,用于从某个地方解码参数,但是我无法从哪里追踪 - 它没有#&# 39; t到达我的任何代码。
答案 0 :(得分:0)
这是由阿波罗的家伙解决的。这是答案 - 我不应该在engine.listen选项中提到我的graphIQL终点。
引擎应该只放在客户端和GraphQL服务器端点之间。尝试这样的配置:
engine.listen({
port: port,
expressApp: fidserver.app,
graphqlPaths: ['/client'] // removed "graphql"
});