我正在尝试创建一个 HTML 表单,用于在 Zendesk 中创建票证。该表格还将包括文件上传。 现在我可以使用 API 创建票证,但无法从 API 调用中获得响应。我需要响应才能从创建的票证中获取票证 ID。我可以使用此 ID 将上传的文件附加到票证中。 但就像我说的,我无法检索回复。
代码:
function createTicket() {
var id;
var easyWalker = $("#choose_product option:selected").html();
var batchNumber = document.getElementById("batch_number").value;
var color = document.getElementById("color").value;
var firstName = document.getElementById("first_name").value;
var lastName = document.getElementById("last_name").value;
var email = document.getElementById("email").value;
var phone = document.getElementById("phone").value;
console.log("creating ticket");
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "Basic " + auth);
myHeaders.append("Cookie", "__cfruid=f6f220be875e5825ba2ea5650a7a58d04ceb1299-1695207433; _zendesk_cookie=BAhJIhl7ImRldmljZV90b2tlbnMiOnt9fQY6BkVU--0bf2100788cb010d0183feca16aaf88ccaf719ca");
var raw = JSON.stringify({
"ticket": {
"subject": "New Easywalker Warranty Registry from " + firstName + " " + lastName,
"description":
"Product: " + easyWalker + "\n" +
"Batch Number: " + batchNumber + "\n" +
"Color: " + color + "\n" +
"Name: " + firstName + " " + lastName + "\n" +
"Email: " + email + "\n" +
"Phone Number: " + phone,
"requester": {
"name": firstName + " " + lastName,
"email": email
}
}
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://easywalkersupport.zendesk.com/api/v2/tickets", requestOptions)
.then(response => id = response)
.then(result => console.log(result))
.catch(error => console.log('error', error));
return id;
}
我知道响应不是 id,但我不知道我需要访问什么属性才能这样做,因为我看不到结果。以前我使用console.log(result),但控制台中没有显示任何内容。
目前我在控制台中收到此错误:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://easywalkersupport.zendesk.com/api/v2/tickets. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing). Status code: 201.
,尽管票证是在 Zendesk 中创建的。
有人可以帮我提供解决方案以及给定解决方案的实施示例吗?
提前致谢!
伊万
您正在使用端点
/api/v2/tickets
,该端点适用于代理和管理员。请参阅:门票与请求
为了创建自定义 HTML,我建议您使用端点
/api/v2/requests
,该端点供最终用户使用。请参阅:创建请求
作为最后的建议,我通常在需要自定义 HTML 表单的项目中所做的事情是在网站和 Zendesk API 之间有一个中间件服务器。 Zendesk 有本教程解释如何使用 Node.js 或 Python 完成这项工作。 自定义门票表格网络应用程序