15

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

VLAZ
  • 26,331
  • 9
  • 49
  • 67
varad
  • 7,309
  • 20
  • 60
  • 112

1 Answers1

30

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.

Marco Castelluccio
  • 10,152
  • 2
  • 33
  • 48
  • I have made to mode:'cors' and made necessary changes as mentioned in https://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api. 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? – Mothy Oct 12 '16 at 09:22
  • Do you have a public URL for the service that I can test? – Marco Castelluccio Oct 14 '16 at 10:40
  • Sorry, Currently the api/url is not hosted anywhere. – Mothy Oct 17 '16 at 06:38