Выборка в реакции с JSON всегда возвращает ошибку - PullRequest
0 голосов
/ 15 октября 2018

Для следующего созданного кода в реакции, после поиска похожего вопроса, я всегда получаю сообщение об ошибке (кажется, что ошибка является возвращением обещания).

Я использую веб-пакет версии 3.1.9

В настройках веб-пакета я сделал (не знаю, нужно ли это):

module.exports = {
...
devServer: {
headers: {
  'Access-Control-Allow-Origin': '*',
  "Access-Control-Allow-Headers": "*"
}
},
...

Вот мой код:

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

Ошибка в строкесо звездочками, как в коде выше

SyntaxError: Неожиданный конец ввода при eval

Код был проверен на предмет состояния покоя API в C #:

Iсделал в коде контроллера:

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

Я предполагаю, что это связано с тем, что json возвращает Promise, как описано в: json возвращает обещание

Я вижу, чтоJSON проблематично.Когда я изменяю response.json () на response.text (), ошибки не возникает, но я понимаю, что даже если я отправляю параметры с «no-cors», я вижу информационное сообщение:

Блокировка перекрестного источника (CORB) заблокировала ответ перекрестного происхождения ... с приложением MIME-типа / json

Похоже, что при выборке игнорируются параметры с 'no-cors'.

Любые подсказки, почему код встречает ошибку?!

Спасибо.


Проблема была исправлена.В ответ я сделал изменения:

var options = {
method: 'GET',
}

... 

В C # restfull api controller я сделал изменения:

Response.AddHeader("Access-Control-Allow-Origin", "*");               
return Json(db.Trainees.ToList(), "application/json", 
   JsonRequestBehavior.AllowGet);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...