当从共享调用WebScript时,始终显示身份验证对话框。从工作流表单调用Web脚本。
userdetails.ftl的一部分:
<#include "/org/alfresco/components/form/controls/common/utils.inc.ftl" />
...
<script>
Alfresco.util.Ajax.jsonGet(
{
url: "http://...:8080/alfresco/s/ms-ws/assignments?taskId=" + clearTaskId,
successCallback:
{
fn: function(response)
{
if(response.json)
{
var json = JSON.parse(response.serverResponse.responseText);
...
for(var i = 0; i < entries.length; i++) {
...
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
var cell4 = row.insertCell(3);
var cell5 = row.insertCell(4);
cell1.innerHTML = entries[i].entry.jobtitle;
cell2.innerHTML = entries[i].entry.firstName;
cell3.innerHTML = "";
cell4.innerHTML = "";
cell5.innerHTML = "";
}
}
},
scope: this
},
failureCallback:
{
fn: function(response)
{
alert("error!");
},
scope: this
}
});
</script>
我的assignments.get.xml:
<webscript>
<shortname>Get all assignments for the specific process instance</shortname>
<description>Returns a list of assignments for the specific process instance</description>
<url>/ms-ws/assignments?id={taskId}</url>
<url>/ms-ws/assignments.json?id={taskId}</url>
<url>/ms-ws/assignments.html?id={taskId}</url>
<format default="json">extension</format>
<authentication>user</authentication>
<transaction>none</transaction>
</webscript>
我尝试将user
更改为guest
并将&guest=true
添加到网络脚本网址的末尾,但它没有帮助。
在这种情况下如何禁用身份验证对话框?
我将非常感谢这些信息。谢谢大家。
答案 0 :(得分:3)
不是通过在客户端上运行的JavaScript调用repo层,而是通常更好地利用Share代理,例如/ share / proxy / alfresco / ms-ws / assignments。
如果您直接从客户端访问repo层,那么您对网络和Alfresco部署做出了一些假设,这些假设可能并非总是如此(即能够直接访问Alfresco repo层)。
答案 1 :(得分:0)
试图通过以下方式解决(不起作用):
在authentication
元素中,我添加了值为runas
的属性admin
:
...
<authentication runas="admin">guest</authentication>
...
在WebScript网址中,我添加了&guest=true
url: "http://...:8080/alfresco/s/ms-ws/assignments?taskId=" + clearTaskId + "&guest=true"