redux fetch body 在没有 cors 模式的情况下不使用

2022-01-20 00:00:00 reactjs fetch javascript fetch-api redux

我有这个调用函数的动作:

I have this action which calls a function:

dispatch(Api({url: "my_url", method: "POST", data: data}))

这里我将数组作为数据传递..

Here I am passing array as a data..

import fetch from 'isomorphic-fetch'

export default function Api({url, method, headers, data}={}){
    return dispatch => {

        console.log(data)
        console.log(url)
        console.log(method)
        console.log(JSON.stringify(data))
        let response = fetch(url, {
            mode: 'no-cors',
            method: method || null,
            body: data || null, 
        }).then(function(response) {
            console.log("response");
             console.log(response)
            });

    }
}

我在这里使用 fetchmode:'no-cors' 我想我传递了所有的争论.我的身体是我传递的简单数组作为争论..

Here I am using fetch with mode:'no-cors' I guess I am passing all the arguements.. My body here is simple array that I am passing as arguement..

当我看到回复时,就像:

When I see the response it is like :

body: null
bodyUsed: false
headers: Headers
ok: false
status: 0
statusText: ""
type: "opaque"
url:""

这里我的身体没有被使用..

Here my body is not being used..

这里有什么问题?需要帮助

What is wrong in here ? Need help

推荐答案

你得到一个不透明的响应 [1] [2],因为您将 fetch 与 mode: 'no-cors' 一起使用.您需要使用 mode: 'cors' 并且服务器需要发送所需的 CORS 标头 [3] 以访问响应.

You're getting an opaque response [1] [2], because you're using fetch with mode: 'no-cors'. You need to use mode: 'cors' and the server needs to send the required CORS headers [3] in order to access the response.

相关文章