Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Apollo客户端发送选项而不是获取HTTP方法_Javascript_Meteor_Graphql_Apollo Client - Fatal编程技术网

Javascript Apollo客户端发送选项而不是获取HTTP方法

Javascript Apollo客户端发送选项而不是获取HTTP方法,javascript,meteor,graphql,apollo-client,Javascript,Meteor,Graphql,Apollo Client,我很难理解Apollo客户端库,因为它不能按预期工作。它不发送GETHTTP方法,而是发送选项HTTP方法,即使我只在从GraphQL服务器检索数据时才使用GET const client = new ApolloClient({ link: ApolloLink.from([ new MeteorAccountsLink(), new HttpLink({ uri: 'https://selo-comments.herokuapp

我很难理解Apollo客户端库,因为它不能按预期工作。它不发送
GET
HTTP方法,而是发送
选项
HTTP方法,即使我只在从GraphQL服务器检索数据时才使用GET

const client = new ApolloClient({
    link: ApolloLink.from([
        new MeteorAccountsLink(),
        new HttpLink({
            uri: 'https://selo-comments.herokuapp.com/graphql',
            useGETForQueries: true
        })
    ]),
    cache: new InMemoryCache()
});
来自浏览器的控制台日志:

选择权https://selo-comments.herokuapp.com/graphql?query=%7B%0A%20%20comments(id%3A%20%22TFPQMHRDXQHK2RYY%22)%20%7B%0A%20%20%20%20%20A%20%20%20%20A%20%20%20%20userId%0A%20%20%20%20createdAt%0A%20%20%20%20commentID%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20分块用户%0A%20%20%20%20%20%20%20\7B%0A%20%7D%(方法不允许)

这显然意味着HTTP方法是不正确的,即使它在url中有查询参数。如果您使用邮递员查询该url,或者只是使用浏览器的地址栏导航到该url,您将获得GraphQL数据。我必须使用
https://cors-anywhere.herokuapp.com/
以便成功执行查询


我做错了什么?

选项请求可能是针对的

CORS飞行前请求是检查CORS协议是否被理解的CORS请求。 它是一个选项请求,使用三个HTTP请求头:访问控制请求方法、访问控制请求头和原始头

您可能需要将服务器配置为允许跨源呼叫


也许你可以从这里找到一些灵感来开始。

哇,这实际上解决了问题哈哈。我甚至没有意识到这一点,谢谢!我已经在服务器上安装了CORS模块,但它仍然让我在客户端感到头疼,但再次感谢。