【发布时间】:2021-05-22 00:20:36
【问题描述】:
我一直在尝试将 api 集成到我与一些朋友一起工作的项目中,但我很难获得“确定”按钮来实际执行该功能。它应该允许您上传照片,单击确定,然后它会返回有关植物的数据。 “选择文件按钮有效,但确定按钮无效。
由于已经创建了 API 示例,我在一个单独的解决方案中对其进行了测试,并且能够让它工作,这让我相信我在其他地方的代码中犯了错误,或者可能有一些东西阻止了程序与 API 的网址交谈。但由于某种原因,它在我试图将其集成到的项目中不起作用。 (ASP.NET 剃须刀页面)。
我还尝试制作一个新按钮并将 javascript 标记移动到标题和其他位置,但这也不起作用,而且我已经没有尝试的想法了。为了隐私起见,我在下面省略了 api 密钥本身。我真的很感激任何关于这个主题的帮助!
@{
ViewData["Title"] = "Identify a Plant";
}
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<form>
<input type="file" multiple />
<!--<button type="button">OK</button> -->
<button type="button">OK</button>
</form>
<script type="text/javascript">
document.querySelector('button').onclick = function sendIdentification() {
const files = [...document.querySelector('input[type=file]').files];
const promises = files.map((file) => {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onload = (event) => {
const res = event.target.result;
console.log(res);
resolve(res);
}
reader.readAsDataURL(file)
})
})
Promise.all(promises).then((base64files) => {
console.log(base64files)
const data = {
api_key: "Die8ewFGvpw5JrRTuOEjgGR10uL--",
images: base64files,
modifiers: ["crops_fast", "similar_images"],
plant_language: "en",
plant_details: ["common_names",
"url",
"name_authority",
"wiki_description",
"taxonomy",
"synonyms"]
};
fetch('https://api.plant.id/v2/identify', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(data),
})
.then(response => response.json())
.then(data => {
console.log('Success:', data);
})
.catch((error) => {
console.error('Error:', error);
});
})
};
</script>
</body>
</html>
【问题讨论】:
标签: javascript c# asp.net visual-studio api