For the following created code in react, after I search similar question, I get always an error (seems that the error is return of a promise).
I am using webpack version 3.1.9
In web-pack configuration I did (don't know whether it is necessary):
module.exports = {
...
devServer: {
headers: {
  'Access-Control-Allow-Origin': '*',
  "Access-Control-Allow-Headers": "*"
}
},
...
Here is my code:
var options = {
  method: 'get',
  mode: 'no-cors',
  headers: {
    Accept: 'application/json',
    'Content-Type': 'application/json',
    'Access-Control-Allow-Headers': '*',
    'Access-Control-Allow-Origin': '*'
  }
};
let _url = 'my url ... web api returns json';
fetch(_url, options)
  .then(response =>
    response
      .json()
      .then(data => ({
        data: data,
        status: response.status
      }))
      .catch(err =>
        /******ERROR: always catch the error *****/
        ({ error_data: err })
      )
  )
  .then(res => {
    console.log(res);
    // console.log(res.status, res.data.title)
  })
  .catch(err => {
    console.log(err);
  });
The error in the line with the asterisks, as code above
SyntaxError: Unexpected end of input at eval
The code was checked for restful api in C#:
I did in the controller code:
public ActionResult Index()
{
    ActionResult x = Json(db.Trainees.ToList(), 
    JsonRequestBehavior.AllowGet);
    //return Content(db.Trainees.ToList().ToString(), 
    "application/json");
    return Json(db.Trainees.ToList(), JsonRequestBehavior.AllowGet);
    // return View(db.Trainees.ToList());
}
I assume it is related to fact that json returns a Promise, as described in: json returns promise
I see that json is problematic. When I change response.json() to response.text() there is no error, but I realize that even I send the options with 'no-cors', I see an information message:
Cross-Origin Read Blocking (CORB) blocked cross-origin response ... with MIME type application/json
Seems that the fetch ignore the options with 'no-cors'.
Any clues, why the code encounters an error?!
Thanks.
Problem had been fixed. In react I did the changes:
var options = {
method: 'GET',
}
... 
In C# restfull api controller I did the changes:
Response.AddHeader("Access-Control-Allow-Origin", "*");               
return Json(db.Trainees.ToList(), "application/json", 
   JsonRequestBehavior.AllowGet);
 
    