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

Posted

技术标签:

【中文标题】redux fetch body 在没有 cors 模式的情况下不使用【英文标题】:redux fetch body is not use with no cors mode 【发布时间】:2016-05-12 05:13:41 【问题描述】:

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

dispatch(Api(url: "my_url", method: "POST", data: 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' 我想我正在传递所有的争论。我的身体是一个简单的数组,我作为争论传递..

当我看到回复时,就像:

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

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

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

【问题讨论】:

你有答案吗?我也面临类似的问题... 是的,问题出在服务器端..您应该允许所有来源获取 是的,这对我有帮助。我在 web 配置文件中添加了 '。但是我已经改为 axios 而不是 'isomorphic-fetch' 【参考方案1】:

你得到一个opaque response [1] [2],因为你正在使用 fetch 和mode: 'no-cors'。 您需要使用 mode: 'cors' 并且服务器需要发送所需的 CORS 标头 [3] 才能访问响应。

【讨论】:

我已对 mode:'cors' 进行了必要的更改,如 asp.net/web-api/overview/security/… 中所述。但得到响应为 (...) bodyUsed:false headers:Headers ok:true status:200 statusText:"OK" type:"cors" url:.你能帮我看看数据吗? 你有我可以测试的服务的公共 URL 吗? 抱歉,目前 api/url 没有托管在任何地方。

以上是关于redux fetch body 在没有 cors 模式的情况下不使用的主要内容,如果未能解决你的问题,请参考以下文章

在 javascript 中使用 fetch 请求 API 存在 CORS 策略错误

fetch 学习笔记

fetch 给出一个空的响应体

在 React 中使用 Redux-Saga/Fetch-mock 测试重定向路由

为啥我的 Axios fetch 会出现 CORS 错误?

请求标头中的 Sec-Fetch-Mode、Sec-Fetch-Dest、Sec-Fetch-Site 创建 CORS 问题