redux fetch body is not use with no cors mode

20,275

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.

Share:
20,275
varad
Author by

varad

Updated on February 24, 2020

Comments

  • varad
    varad about 4 years

    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)
                });
    
        }
    }
    

    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

  • Mothy
    Mothy over 7 years
    I have made to mode:'cors' and made necessary changes as mentioned in asp.net/web-api/overview/security/…. But getting response as (...) bodyUsed:false headers:Headers ok:true status:200 statusText:"OK" type:"cors" url:. Can you please help me to see the data?
  • Marco Castelluccio
    Marco Castelluccio over 7 years
    Do you have a public URL for the service that I can test?
  • Mothy
    Mothy over 7 years
    Sorry, Currently the api/url is not hosted anywhere.