javascript - 为什么在 Dynamics 365 中对 html Web 资源使用 http 请求创建注释后会收到 500 内部服务器错误?
问题描述
用户希望从带有使用 html 和 javascript 创建的自定义 Notes 视图的选项卡中创建 Notes(注释)。我已将以下代码添加到资源中,尽管已创建注释并根据需要链接事件,但 Web 资源在表单上返回 500 内部服务器错误。
这是添加的代码:
<script>
function addNewNote(title_b, notetext_b) {
debugger;
caseId = getUrlParam("id");
console.log("Case ID: " + caseId);
console.log("Title: " + title_b);
console.log("NoteText: " + notetext_b);
var entity = {};
entity["objectid_incident@odata.bind"] = "/incidents(" + caseId + ")";
entity["subject"] = title_b;
entity["notetext"] = notetext_b;
var req = new XMLHttpRequest();
req.open("POST", parent.Xrm.Page.context.getClientUrl() + "/api/data/v9.0/annotations", true);
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.onreadystatechange = function () {
debugger;
if (this.readyState === 4) {
req.onreadystatechange = null;
if (this.status === 204) {
var uri = this.getResponseHeader("OData-EntityId");
var regExp = /\(([^)]+)\)/;
var matches = regExp.exec(uri);
var newEntityId = matches[1];
} else {
parent.Xrm.Utility.alertDialog(this.statusText);
}
}
};
req.send(JSON.stringify(entity));
parent.Xrm.Page.getControl("WebResource_NotesTabView").refresh();
}
</script>
<form action="" method="get" class="form-newnote">
<div class="form-newnote">
<label for="sub">Title </label>
<input type="text" size="114" name="sub" id="sub" required="true">
</div>
<div class="form-newnote">
<label for="notetext">Note </label>
<textarea name="notetext" rows="4" cols="114" id="notetext"></textarea>
</div>
<div class="form-newnote">
<button onclick="addNewNote(sub.value, notetext.value)">Add Note</button>
</div>
</form>
点击“添加注释”之前: 之前
点击“添加注释”后: after
请记住,注释已成功创建并链接到案例。
解决方案
我能感觉到 2-3 个问题。
this.status 我认为你应该在这里调试,可能你会返回 200 而不是 204。
您正在调用 webapi 异步,这应该不是问题,但请尝试将其称为同步。
如果您说在控制台中创建了日志跟踪并检查您的代码到达的位置。
推荐阅读
- python-3.x - 出现错误:列表索引超出范围
- angular - 我的子菜单的 href 和 routerlink 不起作用,但项目中的其他链接工作正常
- r - 将 ggsn 比例尺拟合到 ggmap 对象时出现新错误
- javascript - 存储访问令牌的最安全方式 (Tizen)
- mysql - Docker:使用 Docker 时如何将 SQL 文件导入本地数据库?
- laravel - 多环境下突然出现自签名证书问题
- powershell - Powershell脚本无法识别绝对文件路径
- javascript - 如何成功为 div 运行 onclick?
- python-3.x - FastAI v1 PyTorch 自定义模型
- javascript - 无法在 Vue.js 应用程序中禁用 v-edit-dialog