Asp.net 401在sapui5中使用web服务时出错
我正在通过以下方式将web服务实现到sapui5表中Asp.net 401在sapui5中使用web服务时出错,asp.net,authentication,fiddler,sapui5,Asp.net,Authentication,Fiddler,Sapui5,我正在通过以下方式将web服务实现到sapui5表中 var oModel = new sap.ui.model.odata.ODataModel("http://mywebservice.com/security.svc", false); sap.ui.getCore().setModel(oModel); 在web浏览器中启动代码并检查元素时,出现以下错误: 加载资源失败:服务器响应状态为401(未授权) XMLHttpRequest无法加载$metadata。请求的资源上不存在“Acc
var oModel = new sap.ui.model.odata.ODataModel("http://mywebservice.com/security.svc", false);
sap.ui.getCore().setModel(oModel);
在web浏览器中启动代码并检查元素时,出现以下错误:
加载资源失败:服务器响应状态为401(未授权)
XMLHttpRequest无法加载$metadata。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“”。响应的HTTP状态代码为401
我还在Fiddler中测试了它,我得到:
HTTP/1.1 401未经授权缓存控制:专用
服务器:Microsoft IIS/8.0
设置Cookie:ASP.NET;路径=/;HttpOnly
X-AspNet-Version:4.0.30319
WWW认证:协商
WWW:NTLM
X-Powered-By:ASP.NET
日期:2015年6月9日星期二19:33:51 GMT
内容长度:0
代理支持:基于会话的身份验证
任何关于如何修复401错误的帮助都将不胜感激。创建一个新的
ODataModel
,它将尝试为您调用的服务获取元数据。
它基本上是XMLHttpRequest到另一个域(http://mywebservice.com
)页面(localhost
)处于打开状态。因此浏览器正在阻止它,因为出于安全原因,它通常允许在同一来源中进行请求。了解
解决方案:
当您想要执行跨域请求时,您需要执行一些不同的操作。
源(包含JavaScript的页面所在的位置)和目标:http://mywebservice.com
(JavaScript试图到达的地方)域必须完全相同。
关于如何实现这一点的教程正在使用
在.NET server中,您可以在web.config中进行配置,如下所示
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="your_clientside_websiteurl" />
</customHeaders>
</httpProtocol>
<system.webServer>
只需在桌面上克隆chrome的快捷方式,然后在快捷方式属性中,在chrome可执行文件路径的末尾添加参数--disable web security
例如
“C:\Program Files\Google\Chrome\Application\Chrome.exe”--禁用web安全
注意:添加该参数--在一个空格后在目标位置禁用web安全性