Для следующего созданного кода в реакции, после поиска похожего вопроса, я всегда получаю сообщение об ошибке (кажется, что ошибка является возвращением обещания).
Я использую веб-пакет версии 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);