簡體   English   中英

使用 fetch 時清空請求正文

[英]Empty request body when using fetch

我正在嘗試使用fetch進行從 React 組件到 PHP 服務器的 graphql 調用。 這是我第一次嘗試使用fetch

我在瀏覽器端使用 React JS,在服務器端使用 Symfony 4。 然而,即使我的瀏覽器開發工具似乎表明數據已發送,我的所有調用都以服務器端的空正文結束。

使用 graphiql 時,請求成功。 我正在盡可能地模仿來自 React 的 graphiql 請求,但主體始終是空白的。

這是電話:

fetch('/api', {
    'method': 'post',
    'credentials': 'include',
    'headers': {
        'Content-Type': 'application/json',
    },
    'body': JSON.stringify({
        "query": "mutation {UpdateActionStatus(input: {actionId: 61, status: TO_DO}) { id }}",
        "variables": null
    }),
}).then(r => {
    console.log(r.json());

    return r.json();
}).catch(error => {
    console.log('There has been a problem with your fetch operation: ', error.message);
});

我曾嘗試與mode設為corsno-corssame-originnavigate :沒有這些工作。

我嘗試過 Firefox 和 Chrome:仍然沒有運氣。

將內容類型更改為application/graphql似乎也不起作用。

在使用fetch 、stackoverflow 和其他地方時,我在響應和請求中看到了許多處理空體的問題,但是找到的解決方案似乎都沒有解決我的問題。

我還嘗試了以下更粗略的調用,但無濟於事。 似乎我根本無法使用 fetch ,原因我無法解釋:

fetch('/api', {
    'method': 'post',
    'credentials': 'include',
    'headers': {
        'Content-Type': 'application/x-www-form-urlencoded',
    },
    'body': 'test=test',
});

該怎么辦? 我在這里錯過了一些簡單的東西嗎?

我現在將 GraphQL 與 React 結合使用,而不是直接使用fetch ,而且大多數情況下效果很好。

確保您正確發送Content-TypeAccept標頭。

'Accept': 'application/json',
'Content-Type': 'application/json', 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM