TypeError:无法在回调中读取未定义的属性(读取“dataResponse”)
我正在尝试根据您给我的说明查询 api,但出现此错误:
(index):30 未捕获 TypeError:无法读取未定义的属性(读取“dataResponse”) 在回调((index):30) 在 HTMLButtonElement.onclick((index):23) 回调@(index):30 onclick @(index):23
api 说明 https://drive.google.com/file/d/1KHLduw46l1e3aIGCliTvn1gYuJhv8Npy/view?usp=sharing 你能帮我吗
请
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Bootstrap CSS -->
<title>Duke Business School</title>
<script
data-user="user([email protected]) "
data-password="(password 'sha256Hex')"
data-button=false
data-response=true
data-amount="100.01"
data-commerce="Affinitas"
src="http://52.22.36.22:9020/js/transactions.js">
</script>
</head>
<body>
<button onclick="callback();"> pagar</button>
</div>
</section>
<script>
function callback(data){
alert("RESPUESTA OBTENIDA EN HTML");
alert("Operación: " + data.dataResponse.description + " Autorización: " +
data.dataResponse.authorization)
}
</script>
</body>
</html>
看起来,此处的错误只是一个简单的用户错误,与 API 无关。
您正在使用按钮 onclick 调用“callback()”,而没有传递任何参数。这与“callback(undefined);”相同。
我认为您的逻辑在这里有点混乱。您的按钮应该调用 API,API 应该调用回调。相反,您使用按钮调用回调,完全跳过了 API。
通常,错误 TypeError: Cannot read properties of undefined 是指尝试引用对象或对象属性中不存在的属性。
问题是,您正在尝试读取 dataResponse 的属性“description”,但 dataResponse 不存在。但是编译器不知道 dataResponse 是什么,因为变量 data 不存在。
data.dataResponse.description // <- 与 Undefined.undefined.undefined 相同
根本原因就在这里
onclick="callback();"
,您没有在回调中传递任何数据,而是试图访问函数中的数据,而该数据实际上是
未定义的
。
我不确定这个 api,但在您的按钮点击时
- 您应该将用户重定向到网关页面,该页面将具有独立于您的按钮的两个脚本
或
- 您应该在按钮点击时将上述脚本附加到 dom 中,它会自动处理回调