Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AJAX忽略.Net会话变量_Javascript_.net_Ajax_Session - Fatal编程技术网

Javascript AJAX忽略.Net会话变量

Javascript AJAX忽略.Net会话变量,javascript,.net,ajax,session,Javascript,.net,Ajax,Session,我有一个MVC站点,可以处理一些应用程序的登录过程。当用户登录时,将在登录应用程序的内存中创建一个会话变量 登录应用程序有一个可以调用的控制器操作,用于检查会话变量(在控制器中),如果存在,则返回一个视图以显示注销按钮。如果它不存在,它将返回一个带有登录按钮的视图 在另一个站点上,我们可以在iFrame中加载此控制器操作,按钮显示与预期的一样 现在我们需要注销按钮的一些附加功能,包括用于更新设置、用户名、密码等的下拉列表。iFrame解决方案不再工作,因为菜单无法溢出iFrame容器。所以我们认

我有一个MVC站点,可以处理一些应用程序的登录过程。当用户登录时,将在登录应用程序的内存中创建一个会话变量

登录应用程序有一个可以调用的控制器操作,用于检查会话变量(在控制器中),如果存在,则返回一个视图以显示注销按钮。如果它不存在,它将返回一个带有登录按钮的视图

在另一个站点上,我们可以在iFrame中加载此控制器操作,按钮显示与预期的一样

现在我们需要注销按钮的一些附加功能,包括用于更新设置、用户名、密码等的下拉列表。iFrame解决方案不再工作,因为菜单无法溢出iFrame容器。所以我们认为我们应该通过AJAX加载内容。但是AJAX总是返回登录按钮,不管用户是否登录

登录控制器:

    public ActionResult LoginButton()
    {
        if (Session["User"] == null)
            return View("LoginButton");
        else
            return View("LogoutButton");
    }
登录按钮视图:

@{
    Layout = "";
}

<span style="">
    <a href="https://www.example.com/Welcome" class="btn btn-primary" target="_top">Login</a>
</span>
@{
    Layout = "";
}

<span style="">
    <a href="https://www.example.com/" class="btn btn-primary" target="_top">Log Out</a>
</span>
@{
布局=”;
}
注销按钮视图:

@{
    Layout = "";
}

<span style="">
    <a href="https://www.example.com/Welcome" class="btn btn-primary" target="_top">Login</a>
</span>
@{
    Layout = "";
}

<span style="">
    <a href="https://www.example.com/" class="btn btn-primary" target="_top">Log Out</a>
</span>
@{
布局=”;
}
所有这些都在siteA.com上

在siteB.com上

用户登录时加载注销按钮的iFrame:

<iframe style="border:none; width:150px; height:50px;" scrolling="no" src="http://siteA.com/logInButton"></iframe>

不管用户状态如何加载登录按钮的AJAX

<script type="text/javascript">
    $(document).ready(function () {
        $('#LogInOutBtn').load("http://siteA.com/logInButton"); 
    });
</script>                               
<div id=LogInOutBtn ></div>

$(文档).ready(函数(){
$('#LogInOutBtn')。加载(“http://siteA.com/logInButton"); 
});

我也试过$.get,但也不起作用。

你能告诉我你是如何设置会话的吗。正如我所看到的,只有包含just to check会话对象是否为null的代码


请更新进一步的代码,以便我们能够以适当的方式帮助您

原来这是一个CORS问题。会话cookie未跨域传递,因为.load()和$.get()未将withCredentials(访问控制允许凭据)设置为true