Adobe Lightroom Catalog API 返回代码+JSON

问题描述

使用 Adobe Lightroom Catalog API 访问 Lightroom 帐户中的目录时,生成的数据是代码和 JSON 的组合,以:

while (1) {}\n{\"base\":\"https://lr.adobe.io/v2/\",\"id\":\"7afe....

这与仅指定 JSON 的文档不同。

  1. 我可以安全地修剪开头的“while (1) {}”吗

  2. 我是否应该修改我的请求

  3. 我还应该对 GET 响应字符串进行其他更改吗?

解决方法

是的,您可以安全地剪掉 while (1) {} 部分。

这只是一种防止隐藏在 json 结构中的恶意代码自动执行的安全措施。

不幸的是,这会使您的代码更加复杂。而不是一个简单的

const data = await fetch('https://lr.adobe.io/v2')
    .then((response) => response.json());

你必须这样做:

const data = await fetch('https://lr.adobe.io/v2')
    .then((response) => response.text())
    .then((text) => text.replace('while (1) {}',''))
    .then((json) => JSON.parse(json.trim()));

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...