为什么 JSON.parse 会抛出跨域错误?

2024-01-08

如果没有 JSON.parse,以下代码可以正常工作。如果我尝试解析或字符串化我的数据对象,我会收到跨源错误。为什么会发生这种情况以及如何解决它?

我在 Title.js 中有以下代码:

const { name, show_title } = JSON.parse(data.attributes);

这是我从 Title.stories.js 传递的数据对象:

{"attributes":{"name":"testNameAttribute","show_title":"0"}}

我在 Chrome 中收到以下错误:

错误:抛出了跨域错误。 React 无权访问 开发中的实际错误对象。 在 Object.invokeGuardedCallbackDev (http://localhost:9002/vendors~main.dabd386ab27fa6eddf93.bundle.js:74131:19 http://localhost:9002/vendors~main.dabd386ab27fa6eddf93.bundle.js:74131:19) 在 invokeGuardedCallback (http://localhost:9002/vendors~main.dabd386ab27fa6eddf93.bundle.js:74175:31 http://localhost:9002/vendors~main.dabd386ab27fa6eddf93.bundle.js:74175:31) 开始工作$$1 (http://localhost:9002/vendors~main.dabd386ab27fa6eddf93.bundle.js:99439:7 http://localhost:9002/vendors~main.dabd386ab27fa6eddf93.bundle.js:99439:7) 在执行工作单元(http://localhost:9002/vendors~main.dabd386ab27fa6eddf93.bundle.js:98347:12 http://localhost:9002/vendors~main.dabd386ab27fa6eddf93.bundle.js:98347:12) 在工作中LoopSync (http://localhost:9002/vendors~main.dabd386ab27fa6eddf93.bundle.js:98323:22 http://localhost:9002/vendors~main.dabd386ab27fa6eddf93.bundle.js:98323:22) 在performSyncWorkOnRoot处(http://localhost:9002/vendors~main.dabd386ab27fa6eddf93.bundle.js:97891:11 http://localhost:9002/vendors~main.dabd386ab27fa6eddf93.bundle.js:97891:11) 在 ScheduleUpdateOnFiber (http://localhost:9002/vendors~main.dabd386ab27fa6eddf93.bundle.js:97299:7 http://localhost:9002/vendors~main.dabd386ab27fa6eddf93.bundle.js:97299:7) 在scheduleRootUpdate (http://localhost:9002/vendors~main.dabd386ab27fa6eddf93.bundle.js:100654:3 http://localhost:9002/vendors~main.dabd386ab27fa6eddf93.bundle.js:100654:3) 在 updateContainerAtExpirationTime (http://localhost:9002/vendors~main.dabd386ab27fa6eddf93.bundle.js:100682:10 http://localhost:9002/vendors~main.dabd386ab27fa6eddf93.bundle.js:100682:10) 在更新容器(http://localhost:9002/vendors~main.dabd386ab27fa6eddf93.bundle.js:100784:10 http://localhost:9002/vendors~main.dabd386ab27fa6eddf93.bundle.js:100784:10)

Firefox 中出现此错误:

JSON.parse:JSON 数据第 1 行第 2 列出现意外字符

Button@http://localhost:9002/main.96db0eff63ba8f27231c.hot-update.js:38:26 http://localhost:9002/main.96db0eff63ba8f27231c.hot-update.js:38:26renderWithHooks@http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:90029:18 http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:90029:18挂载不确定组件@http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:92444:13 http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:92444:13开始工作$1@http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:93793:16 http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:93793:16回调@http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:74071:14 http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:74071:14调用GuardedCallbackDev@http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:74120:16 http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:74120:16调用GuardedCallback@http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:74175:31 http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:74175:31开始工作$$1@http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:99439:7 http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:99439:7执行工作单元@http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:98350:12 http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:98350:12工作循环同步@http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:98323:22 http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:98323:22PerformSyncWorkOnRoot@http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:97891:11 http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:97891:11调度更新光纤@http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:97299:7 http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:97299:7日程根更新@http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:100654:3 http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:100654:3updateContainerAtExpirationTime@http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:100682:10 http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:100682:10更新容器@http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:100784:10 http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:100784:10LegacyRenderSubtreeIntoContainer/http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:101372:7未批量更新@http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:98084:12 http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:98084:12传统RenderSubtreeIntoContainer@http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:101371:5 http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:101371:5使成为@http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:101465:12 http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:101465:12渲染/http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:11741:26使成为@http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:11740:10 http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:11740:10_被调用者$@http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:11837:20 http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:11837:20试着抓@http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:127832:40 http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:127832:40调用@http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:128058:22 http://localhost:9002/vendors~main.f1b2a3fffbb517f9fb67.bundle.js:128058:22定义迭代器方法/


这是因为你的attributes是一个对象而不是字符串

/** Attributes is a string */
const data = {
  "attributes": `{
    "name": "testNameAttribute",
    "show_title": "0"
  }`
};
const { name, show_title } = JSON.parse(data.attributes);
console.log(name) //Output "testNameAttribute"


/** Attributes is an object */
const data = {
  "attributes": {
    "name": "testNameAttribute",
    "show_title": "0"
  }
};
const { name, show_title } = JSON.parse(data.attributes);
console.log(name) //Error
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 JSON.parse 会抛出跨域错误? 的相关文章

  • React Native:不透明视图内的透明视图

    我想用不透明框架和透明中心显示相机的视图 就像图片中的一样 黑色部分是相机的视图 我正在寻找具有纯反应本机组件的解决方案 没有额外的库 例如https github com gilbox react native masked view h
  • 雅虎 OAuth2 隐式授予流程不适用于新的雅虎应用程序

    我有现有的网络应用程序和专用雅虎应用程序 https developer yahoo com apps 在职的 它用OAuth2 隐式授权流程 https developer yahoo com oauth2 guide flows imp
  • 实现悬停信息框

    我有一个日历 当用户将鼠标悬停在单元格上时 会出现一个很大的信息框 其中包含该日期的详细信息 虽然当用户离开时使信息框消失 但我遇到了一些麻烦 我基本上想要它 这样当鼠标光标移出信息框隐藏的日历单元格时 它就会消失 但我遇到了麻烦 因为mo
  • Javascript 在另一个函数中检测“Shift”键按下

    我正在从 Flash 影片 使用外部接口 调用我的 html 页面中的 Javascript 函数 并且我想知道调用该函数时用户是否按下了 Shift 键 例如 如果我通过鼠标单击调用该函数 这似乎很简单 因为我可以传递事件并检查 if e
  • Sequelize - 使用 es6 和模块运行迁移

    我不确定我是否做错了什么或者什么 我觉得我正在运行一个现代的 相当常见的堆栈 但我无法让新的 Sequelize v6 与我的设置完美配合 我在 Node v14 17 Sequelize v6 6 2 上 在我的 package json
  • 在多个动态添加的表单上初始化 jQuery validate() 函数

    有人建议最好初始化一个 form validate 在页面加载而不是点击事件上运行 jquery form validate 插件仅允许在输入更改时提交 https stackoverflow com questions 10984196
  • Cosmos DB Mongo API 如何管理“请求率很大”情况

    我有以下代码 async function bulkInsert db collectionName documents try const cosmosResults await db collection collectionName
  • window.open:是否可以打开一个新窗口并修改其 DOM

    我想打开一个新窗口 var my window open iframe html blank height 600 width 600 但当我打开它时 我想修改它的DOM 我尝试过 var div my document createEle
  • JavaScript:常量属性

    在javascript中 我可以将对象的属性声明为常量吗 这是一个示例对象 var XU Cc Components classes or function aXU this Cc Components classes var XU new
  • 在react-admin中通过REST API进行基于cookie的身份验证

    我是反应管理新手 我已经阅读了 stackoverflow 中的所有问题 也用谷歌搜索了我的问题 但没有找到任何有用的解决方案 我正在设置 React admin 来替换我的一个项目的现有管理页面 我通过 REST API 使用基于 coo
  • “|”是什么意思(单管道)在 JavaScript 中做什么?

    console log 0 5 0 0 console log 1 0 1 console log 1 0 1 为什么0 5 0返回零 但任何整数 包括负数 都返回输入整数 单管道 有什么作用 这是一个按位或 https developer
  • 窗口大小调整触发的 DOM 事件

    我有一个布局相当复杂的页面 最初打开页面时 某些元素的对齐存在问题 但是 可以通过更改浏览器窗口的大小来 永久 解决此问题 显然 我不希望用户必须调整浏览器窗口的大小才能使页面正确显示 所以我想知道是否有一种方法可以在页面首次加载时以编程方
  • @aspnet/signalr 与 @microsoft/signalr javascript 库

    aspnet signalr 与 microsoft signalr javascript 库有什么区别 两者似乎都对 DotNetCore SignalR 有效 两者似乎都很活跃 在一些教程中 我找到 aspnet signalr 在Do
  • 如何使用Create React App安装React

    嗨 我对反应真的很陌生 我不知道如何实际安装它 也不知道我需要做什么才能在其中编写代码 我下载了node js并且安装了v12 18 3以及NPM 6 14 6 但是每次我尝试在许多网站上提到的create react app安装方法中输入
  • JavaScript Promise 不执行 .then()

    我在 JavaScript 中的 Promise 方面遇到了一些问题 我想做的是获得一个地址列表 然后对于每个地址 我需要调用地理编码 API 来获取 lat lng 然后我将继续将标记与热图一起绘制 这是我的代码 let promiseK
  • 是否可以将请求标头添加到 CORS 预检请求中?

    我有一个从外部服务器 不是服务器 访问 API 的网站 为网站提供服务 通过简单的XmlHttpRequest 见下文 那个API 需要将用于访问服务的 API 密钥添加为请求标头 然而 正如这些CORS https developer m
  • Aurelia - 仅 HTML 自定义元素的内联定义

    我的 Aurelia 视图模型中有一个递归对象 如下所示 Class BottomlessPit Name string MorePits BottomlessPit null 因此 我想在 Aurelia 视图中使用递归模板 它只会在一个
  • 使用 AJAX 和 JQuery 按设定的时间间隔刷新 Rails 部分

    I have a page in my rails application that looks like 现在 我有另一个用 python 编码的人工智能应用程序 它处理视频 显示在 Rails 应用程序页面的左侧 并使用捕获的车辆及其相
  • Javascript 中 if 语句中的假值?

    过去两周 我在学校研究 JavaScript 的事情已经有一段时间了 而且我一直在做我的作业 在 Douglas Crockford 所著的 JavaScript The Good Parts 一书中 作者在第 11 页上列出了 if 语句
  • D3 将现有 SVG 字符串(或元素)追加(插入)到 DIV

    我到处寻找这个问题的答案 并找到了一些我认为可能有用的资源 但最终没有让我找到答案 这里有一些 外部SVG http bl ocks org mbostock 1014829 嵌入SVG https stackoverflow com qu

随机推荐

  • Pycharm 有交互式 Python 解释器吗?

    我是最近从其他 IDE 切换到的 Pycharm 新用户 我的一个问题是关于交互式 python 解释器 它是一个 窗口 我可以在运行脚本后输入变量来检查它们 Pyscripter 有一个叫做 Python 解释器 的东西 我知道 Pych
  • Gson自定义反序列化

    我正在使用 Gson 创建和解析 JSON 但我遇到了一个问题 在我的代码中我使用这个字段 Expose private ArrayList
  • 关闭 PDO 语句

    我最近决定从 MySQLi 跳到 PDO 但有一些关于 PDO 准备好的语句的问题困扰着我 在 MySQLi 中 我会编写一个典型的获取查询 如下所示 db new mysqli localhost user pass mydb sql S
  • getBoundingClientRect() 在 XUL 中返回零

    我的 Firefox 扩展有问题 我有一个 XUL 弹出面板 其中包含用于标签云的 hbox 以及用于将 div 添加到此 hbox 的 JS 代码
  • BigQuery 日期分区视图

    BigQuery 允许您创建日期分区表 https cloud google com bigquery docs creating partitioned tables https cloud google com bigquery doc
  • 在 Google 地图中使用 3D

    我想创建一个 web 应用程序 我可以在其中显示我自己的 geotiffs NDVI 和其他数据层以及 3D 几何图形 提供 2D 图块和纹理 3D 形状的无缝渲染 就像maps google com 在中实现的那样从 地图 视图切换到 地
  • 验证失败时重新填充单选按钮

    我有一个从数据库中提取数据的表单 如果它是一个输入框 代码可以正常工作 但我无法获取单选按钮的最新 POST 数据 这适用于输入文本框 我在第一次加载时获得从数据库中提取的默认值 并且我可以从用户在验证失败时修改输入框获得新的输入 如果有
  • 如何使用SAX PARSER解析android中的html内容

    xml中有描述标签 它包含 html 标签 我在android中使用SAX解析器来解析 但是 当它从描述标签获取数据时 它不会获取 html 内容 也不会获取任何标签 那么我如何解决使用 SAX 解析器从 XML 解析 html 内容的问题
  • 当相机之间的角度太大时,OpenCV 立体图像校正无法正常工作

    我想收集位于两个摄像机焦点处的身体的高度数据 这就是我的立体声设置的样子 当我使用标准 cv2 函数计算图像的校正版本时 它看起来非常糟糕 当我对相机并行使用类似的设置时 它起作用了 我计算了外线 它们似乎是正确的 However the
  • 需要帮助重写 WPF 按钮样式背景颜色。

    我为自定义按钮设置了以下代码 但我想更改单个按钮的背景
  • Phonegap/ios7 - 重新加载时未触发 deviceready 事件

    我们的 Phonegap 混合应用程序在首次加载时工作正常 在这种情况下 很明显 deviceready 事件正确触发并且应用程序启动 没有问题 我们需要在某个时候重新加载应用程序 我们只需对index html 主应用程序html 文件
  • 在容器创建时设置docker镜像用户名?

    我有一个 OpenSuse 42 3 docker 映像 已将其配置为运行代码 该映像有一个名为 myuser 的用户 root 除外 该用户是我在初始映像生成过程中通过 Dockerfile 创建的 我有三个脚本文件 它们根据用户所在的操
  • jquery循环遍历json

    您好 我正在尝试循环遍历 json 文件 如下所示 each data playlists playlist function i item contentC append p item id p contentC append p ite
  • React .setState() 中的展开运算符

    给出从 React 类组件中提取的以下代码片段 constructor props super props this state active true deactivate gt this setState this state acti
  • bat 文件脚本检查字符串是否包含其他字符串

    我需要编写一个批处理文件来检查变量是否包含特定值 我尝试执行以下操作 If a a pattern echo Yes else echo No 输入示例 a 鲍勃 宾森 pattern 宾森 我从来没有打印过 是 谁能告诉我我错过了什么 或
  • 有效计算笛卡尔积中总和高于特定数字的集合

    我有以下可以运行的 Python 3 代码 import itertools loops 10 results 4 2 75 2 75 1 5 1 5 1 5 0 threshold loops 2 cartesian product it
  • PHP/PDO/MSSQL如何获取错误信息?

    我做了很多搜索 但找不到任何关于我的问题的信息 我在用着PDO带司机PDO DBLIB访问 MS SQL 数据库 我通常使用准备好的语句 但如果任何查询失败 我不会获得有关该错误的任何其他信息 除了 General SQL Server e
  • MySQL SELECT INTO 等效吗?

    在 SQL Server 中 我可以使用以下命令将表或临时表复制到新表 SELECT INTO syntax 有人知道如何在 MySQL 中执行相同的操作吗 See 创建表 作为选择 http dev mysql com doc refma
  • 按行数设置 TableView 高度

    我有TableView in the MainstoryBoard并且行数每次都是随机的 我想要整体的高度TableView灵活 我的意思是 例如 如果我有 4 行TableView和每个TableView行高是 22 所以TableVie
  • 为什么 JSON.parse 会抛出跨域错误?

    如果没有 JSON parse 以下代码可以正常工作 如果我尝试解析或字符串化我的数据对象 我会收到跨源错误 为什么会发生这种情况以及如何解决它 我在 Title js 中有以下代码 const name show title JSON p