句柄响应-SyntaxError:使用模式时输入的意外结束:“no-cors”

我尝试过对REST-API进行ReactJS提取调用,并希望处理响应。调用成功后,我得到了一个响应,我可以在ChromeDev工具中看到:

function getAllCourses() {fetch('http://localhost:8080/course', {
    method: 'POST',
    mode: 'no-cors',
    credentials: 'same-origin',
    headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
    },
    body: JSON.stringify({
        objectClass: 'course',
        crud: '2'
    })}).then(function (response) {
    console.log(response);
    return response.json();}).catch(function (err) {
    console.log(err)});}

当我试图处理响应时,我得到了一个“SyntaxError:意外的输入结束”

return response.json();

我的响应JSON看起来是这样的,它是有效的,我用jsonlint检查了它:

[
  {
    "0x1": {
      "users": [],
      "lectures": [],
      "owner": "0x2",
      "title": "WWI 14 SEA",
      "description": null,
      "objectClass": "course",
      "id": "course_00001"
    },
    "0x2": {
      "username": "system",
      "lectures": [],
      "course": null,
      "solutions": [],
      "exercises": [],
      "roles": [
        "0x3",
        "0x4",
        "0x5"
      ],
      "objectClass": "user",
      "id": "user_00001"
    },
    "0x3": {
      "roleName": "ROLE_ADMIN",
      "objectClass": "role",
      "id": "role_00001"
    },
    "0x4": {
      "roleName": "ROLE_STUDENT",
      "objectClass": "role",
      "id": "role_00002"
    },
    "0x5": {
      "roleName": "ROLE_DOCENT",
      "objectClass": "role",
      "id": "role_00003"
    }
  }]


鸿蒙传说
浏览 959回答 3
3回答

ABOUTYOU

在你的then在返回之前,您应该检查响应是否正常。response.json:.then(function (response) {     if (!response.ok) {         return Promise.reject('some reason');     }     return response.json();})如果希望在被拒绝的承诺中包含错误消息,可以执行以下操作:.then(function (response) {     if (!response.ok) {        return response.text().then(result => Promise.reject(new Error(result)));     }     return response.json();})
打开App,查看更多内容
随时随地看视频慕课网APP