我构建了一个SharePoint应用程序,它使用Jquery调用IIS中托管的Web服务。
SharePoint Server特别是应用程序将在域
下的SharePoint中托管https://qsspapp-3b9352b780820d.qsapps.com/teams/...
我的电话如下所示
private loadStates() {
$.support.cors = true;
$.ajax({
type: "GET",
cache: false,
crossDomain:true,
url: "http://myservice.de/api/controller/getavailablestates",
success: (results) => {
console.log(results.Data);
this.availableStates.removeAll();
$.each(results.Data, (indexedDB, item: TableResultItem) => {
this.availableStates.push(new DataObjects.SelectionItem(item.rEQSTField, item.rEQST_DSCRField));
});
},
error: (jqXHR: any, textStatus: any, errorThrown: any) => {
console.log("loadStates Error: " + errorThrown);
},
});
}
我的服务Web.config包含以下cors设置:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>...
当我调用此方法时,它会让我误认为“Acces is Denied”。
我错了什么?
答案 0 :(得分:0)
在 webconfig
中使用以下内容<system.web>
<authentication mode="None" />
<authorization>
<allow users="?" />
</authorization>
</system.web>
希望这会有所帮助......
答案 1 :(得分:0)
最后我得到了解决方案。
问题
我在HTTPS系统(SharePoint)上工作,并调用HTTP系统(服务调度程序)。 这适用于大多数浏览器,但不适用于IE ....(坏事......)
解决方案:
我必须为Service Dispatcher创建一个HTTP Binding,并将Dispatcher Url添加为thrusted site。
之后就可以了。
谢谢你的帮助! :)