0

我很难在标准的 apollo graphql-server-express上发出 HTTP 获取请求

我尝试按照graphql.org上的指导进行操作,但无济于事。

为了测试这一点,我正在使用Fusetools News Feed Example并使用标准 http 调用 apollo-server 来切换 fetch 调用:

```

fetch('https://localhost:8080/graphql', {
                "method": 'POST',
                "headers": { "Content-type": "application/graphql", "Accept": "application/json"},
                "body": {"query": "{ places { id name address city }" }
            })
            .then(function(response) { return response.json; })
            .then(function(responseObject) { data.value = responseObject; });

```

这是仅更改了返回字段的完整代码。

```

<DockPanel>
    <JavaScript>
        var Observable = require("FuseJS/Observable");

        var data = Observable();
        fetch('https://localhost:8080/graphql', {
            "method": 'POST',
            "headers": { "Content-type": "application/graphql", "Accept": "application/json"},
            "body": {"query": "{ places { id name address city }" }
        })
        .then(function(response) { return response.json; })
        .then(function(responseObject) { data.value = responseObject;                });


        module.exports = {
            dataSource: data
        };
    </JavaScript>

    <StatusBarBackground Dock="Top" />
    <BottomFrameBackground Dock="Bottom" />

    <StackPanel Dock="Top">
        <Text FontSize="28" Alignment="VerticalCenter"
            TextAlignment="Center" Padding="2"
            Value="NEWS" />
        <Rectangle Height="1" Margin="0,3,0,0" Fill="#333c48" />
    </StackPanel>

    <Text ux:Class="Header" Margin="10,10,10,5" TextWrapping="Wrap" FontSize="22" />
    <Text ux:Class="Article" Margin="10,0,10,0" TextWrapping="Wrap" FontSize="13" />
    <Text ux:Class="PublishedDate" Margin="10,0,10,0" FontSize="13" Color="#999" />

    <ScrollView>
        <StackPanel Alignment="Top">
            <Panel Height="7" />
            <Each Items="{dataSource.data.places}">
                <Panel ux:Class="HorizontalBar" Margin="46,10,0,10"
                        Alignment="VerticalCenter">
                    <Rectangle Height="1" Fill="#dcdee3" />
                </Panel>

                <Header Value="{name}" />
                <Article Value="{address}" />
                <PublishedDate Value="{city}" />
                <HorizontalBar />
            </Each>
        </StackPanel>
    </ScrollView>

</DockPanel>

``` 任何指导将不胜感激。谢谢你。

4

1 回答 1

0

要使用 fetch 到 graphql 服务器,适用于我的情况的正确语法如下。谢谢,丹尼尔。

fetch('https://graphql-swapi.parseapp.com/', {
  method: 'POST',
  headers: { "Content-type": "application/json", "Accept": "application/json"},
  body: JSON.stringify({"query":"{allFilms {totalCount}}","variables":null,"operationName":null})
}).then(function(response) { return response.json(); })
.then(function(responseObject) { console.log('GOT', JSON.stringify(responseObject, null, '  ')); });
于 2016-11-05T21:19:16.737 回答