Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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
Asp.net mvc mvc站点中未共享登录会话的jquery ajax调用_Asp.net Mvc_Asp.net Mvc 3_Jquery - Fatal编程技术网

Asp.net mvc mvc站点中未共享登录会话的jquery ajax调用

Asp.net mvc mvc站点中未共享登录会话的jquery ajax调用,asp.net-mvc,asp.net-mvc-3,jquery,Asp.net Mvc,Asp.net Mvc 3,Jquery,如标题所示 我们开火了 $('#id').load('someUrl', function(){/*some stuff*/}); 但它似乎被传递到登录表单,因为它没有登录 用户已登录。这正常吗?这也发生在我身上,但原因并不是ajax变得疯狂(看起来可能是这样),而是URL不正确 该网站最初托管在localhost上,没有任何别名,因此我有一个像localhost/controller/action这样的工作URL 然后我移动了一个别名下的网站-因此该网站的URL是localhost/alia

如标题所示

我们开火了

$('#id').load('someUrl', function(){/*some stuff*/});
但它似乎被传递到登录表单,因为它没有登录


用户已登录。这正常吗?

这也发生在我身上,但原因并不是ajax变得疯狂(看起来可能是这样),而是URL不正确

该网站最初托管在localhost上,没有任何别名,因此我有一个像localhost/controller/action这样的工作URL

然后我移动了一个别名下的网站-因此该网站的URL是localhost/alias。此时,一些ajax请求发生了两件奇怪的事情: -请求被提示进行身份验证(该网站正在使用windows身份验证) -请求的会话与启动请求的页面会话不同

问题是一些URL是在js代码中硬编码的。因此,我们在ajax调用代码中使用了类似“
url:”/controller/action“
”的代码,而此url没有考虑IIS中承载网站的别名

解决方案是在页面中声明一个js变量,并使用URL.Action为其分配正确构建的URL,然后在ajax调用中使用该变量: 第页:


这应该行得通。AJAX请求发送所有必要的cookie。可能会话已过期?返回的错误/响应是什么?请求是否发送到同一域?URL指向什么?它是MVC操作、asmx web服务等吗。?
<script type="text/javascript">
    var ajaxUrl = '@Url.Action("actionname", "controllername")';
</script>
    $.ajax({
                    type: 'POST',
                    url: ajaxUrl,
...