2016-10-28 82 views
0

我正在构建一个ASP.NET Core APP,它使用ASP.Net核心OpenID Connect与Azure AD B2C一起执行身份管理。在客户端,我使用的是使用打字机的Angularjs 2。我的注销功能基本上重定向到帐户控制器。错误500在Chrome和IE注销时

logout() { 
     window.location.href = "./Account/Logout"; 
    } 

多数时候工作的,但是对于一些未知的原因,Chrome和IE结果错误500,没有头的描述,并导致成白色的页面,什么都没有发生和用户仍然可以通过导航后退按钮回来。

我已经搜查了DOM,发现以下

TypeError: Illegal invocation at Node.remoteFunction

请帮助,因为我运行的想法,为什么,为什么只在Chrome & IE

感谢

+0

尝试使用window.location.href =“http://www.yoursite.xxx/Account/登出”;即(window.location.href =“http:// localhost /帐户/注销”) –

+0

谢谢 - 请你让我知道为什么我需要有完整的路径进入它。 – alijohn

回答

0

你忘了添加协议,你可以这样做:

在启动方法中添加参数到你的配置

var builder = new ConfigurationBuilder(); 
builder.AddInMemoryCollection(); 
var config = builder.Build(); 
config["baseURL"] = "yourbaseurl"; 

//can get like this 
var setting = config["baseURL"]; 

或web.config中

<appSettings> 
    <add key="BaseURL" value="http://localhost/" /> 
</appSettings> 

而且你可以读取它也

window.location.href ="<%=System.Configuration.ConfigurationManager.AppSettings["baseURL"].ToString()%>/Account/Logout"; 
+0

再次感谢 - 为什么这必须是一条绝对路径,为什么它不能成为相对路径。 对不起,要求太多的问题 - 我想了解为什么这与其他不同 – alijohn