如标题
我们正在解雇
$('#id').load('someUrl', function(){/*some stuff*/});
但它似乎被传递到登录表单,因为它没有登录?!
用户已登录。这是正常的吗?
答案 0 :(得分:0)
这也发生在我身上,但原因并不是ajax疯了 - 它可能看起来像 - 但是网址不正确。
该网站最初托管在localhost上,没有任何别名,因此我有一个像localhost / controller / action这样的工作URL。
然后我将网站移到别名下 - 所以网站的网址是localhost / alias。在这一点上,两个奇怪的事情对一些ajax请求感到高兴: - 提示请求进行身份验证(网站使用的是Windows身份验证) - 请求的会话与启动请求的页面不同
问题是某些网址在js代码中是硬编码的。因此,我们在ajax调用代码中使用了类似“url: '/controller/action'
”的代码,并且此URL未考虑在IIS中托管网站的别名。
解决方案是在页面中声明一个js变量,并使用Url.Action为其分配以正确方式构建的URL,然后在ajax调用中使用该变量: 页:
<script type="text/javascript">
var ajaxUrl = '@Url.Action("actionname", "controllername")';
</script>
Js文件:
$.ajax({
type: 'POST',
url: ajaxUrl,
...