客户端 JavaScript(API 处理程序):
async function API_HANDLER(request) {
try {
const url = "my script id"; // Replace with your actual URL
IsLoading(true); // Start loading
const fetchOptions = {
redirect: "follow",
method: "POST",
headers: {
"Content-Type": "text/plain;charset=utf-8", // Sending as text
},
body: JSON.stringify(request),
};
const response = await fetch(url, fetchOptions);
if (response === undefined) {
SHOW_ERROR_POPUP(error.message);
}
const data = await response.json();
IsLoading(false); // Stop loading
if (data?.status) {
return data; // Resolve the data to be used by the caller
} else {
console.log("Error - ", data);
SHOW_ERROR_POPUP(
"Something went wrong, please contact any NKD Servants."
);
}
} catch (error) {
IsLoading(false); // Stop loading on error
console.log(error);
SHOW_ERROR_POPUP(error.message);
} finally {
IsLoading(false); // Stop loading regardless of success or error
}
}
服务器端 Google Apps 脚本 (doPost):
function doPost(e) {
// Handle CORS preflight request (OPTIONS)
if (e.postData.type === 'OPTIONS') {
return ContentService.createTextOutput()
.setMimeType(ContentService.MimeType.TEXT);
}
var data = JSON.parse(e.postData.contents);
// Process and return response
var response = {
status: "success", // or other status depending on your logic
message: "Request processed successfully"
};
return ContentService.createTextOutput(JSON.stringify(response))
.setMimeType(ContentService.MimeType.JSON);
}
问题:
我尝试过的:
我已验证我的 Google Apps 脚本 doPost() 方法是否正确处理 POST 请求并使用有效的 JSON 对象进行响应。
由于上述问题无法修复此问题
我需要一些解决方案来修复此 cors 错误并通过 google 应用脚本成功调用 post api
你能分享一些建议吗? 我正在从客户端 JavaScript 向 Google Apps 脚本端点发出异步 POST 请求,但得到的结果不一致。有时请求成功,我从服务器得到预期的响应。然而,在其他时候,请求失败,我没有得到预期的响应。
这里概述了我发出 API 请求的客户端代码,后面是服务器端 Google Apps 脚本(doPost 方法)代码。
根据 https://developers.google.com/apps-script/guides/web,
e.postData.type
返回帖子正文的 MIME 类型。 OPTIONS
不属于 https://developer.mozilla.org/en-US/docs/Web/HTTP/MIME_types/Common_types 中列出的 MIME 类型。要了解有关 MIME 类型的更多信息,请阅读 https://developer.mozilla.org/en-US/docs/Web/HTTP/MIME_types 以及其他来源。