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 使用jQuery Mobile仅在主页上禁用AJAX_Asp.net Mvc_Jquery Mobile - Fatal编程技术网

Asp.net mvc 使用jQuery Mobile仅在主页上禁用AJAX

Asp.net mvc 使用jQuery Mobile仅在主页上禁用AJAX,asp.net-mvc,jquery-mobile,Asp.net Mvc,Jquery Mobile,我正在寻找一种只在我的项目主页上禁用AJAX的方法。我使用的是MVC,因此在许多领域都有指向主页的链接。我希望整个网站使用AJAX,但在加载主页时不需要。原因是我使用脚本动态设置UI,它包含对象,当页面作为硬刷新加载时加载这些对象,但当jQuery Mobile转换到页面时不加载。我正在寻找一个解决方案,在这个解决方案中,我可以在主页上添加一个脚本,以便在引用AJAX时禁用它。但解决方案的其余部分仍然使用AJAX。这是一种非常独特的情况,但我还没有发现任何东西可以阻止一个页面通过AJAX加载。有

我正在寻找一种只在我的项目主页上禁用AJAX的方法。我使用的是MVC,因此在许多领域都有指向主页的链接。我希望整个网站使用AJAX,但在加载主页时不需要。原因是我使用脚本动态设置UI,它包含对象,当页面作为硬刷新加载时加载这些对象,但当jQuery Mobile转换到页面时不加载。我正在寻找一个解决方案,在这个解决方案中,我可以在主页上添加一个脚本,以便在引用AJAX时禁用它。但解决方案的其余部分仍然使用AJAX。这是一种非常独特的情况,但我还没有发现任何东西可以阻止一个页面通过AJAX加载。有人知道吗

如果可以,我只想在主页上做这样的事情

<script>
$(document).bind(function(){
    [some call to disable this page from being loaded with AJAX]
});
</script>

$(文档).bind(函数(){
[一些用于禁用此页面加载AJAX的调用]
});

提前谢谢。

不存在这样的东西。把AJAX想象成一个小型浏览器:如果URL返回响应,它就可以访问它。但是,如果检测到“AJAXy”请求头,可能会在Home操作中转移请求头的存在,并返回类似403的禁止消息

例如,jQuery发送一个
X-request-With:XMLHttpRequest
头及其请求。如果存在此标头,则请求很可能来自jQuery中的AJAX方法(或可能使用相同方法的其他库)。如果需要,还可以通过AJAX请求传递自己的自定义头。然而,所有这些都是特定于实现的,所以这在很大程度上取决于团队中的所有开发人员以某种方式进行工作。例如,如果有人使用标准JavaScript XHR对象发出请求,那么
X-Requested-With
头将不存在。或者,如果使用自定义头,每个开发人员每次都需要传递该头,否则逻辑就会崩溃

如果您的业务规则规定不应通过AJAX请求主页,那么最好的处理方法是在业务级别,即策略级别。在实际代码中尝试使用的任何东西都可以轻松解决