-2

我正在尝试在我的 asp.net 页面中实现 Jquery AJAX。我应该将我的 $.post 或 $.ajax 放在我的脚本中的什么位置。

4

1 回答 1

2

您不一定需要将 $.post 和 $.ajax 调用放在 document.ready 回调中。仅当您想将某些属于 DOM 的值作为参数传递时,您才需要这样做。但是,如果您发送的所有值都不依赖于 DOM,那么您可以在加载 DOM 之前完美地触发 AJAX 请求。唯一的限制是该脚本需要放在 jquery.js 脚本脚本包含之后。例如,您可以在<head>没有任何 document.ready 的页面部分中放置以下脚本:

<head>
    ...
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script type="text/javascript">
        $.post('/some_script.cgi', { foo: 'bar' }, function(result) {
            alert('success');
        });
    </script>
</head>

但是如果你想传递一些属于你的 DOM 的值,那么你需要包装在一个 document.ready 中:

<head>
    ...
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script type="text/javascript">
        $(function() {
            // Here you are accessing the DOM to get the value of the 
            // #some_element_id so you need to place your script in a 
            // document.ready
            var value = $('#some_element_id').html();
            $.post('/some_script.cgi', { foo: value }, function(result) {
                alert('success');
            });
        });
    </script>
</head>

如您所见,这完全取决于您的具体情况,但 $.post 和 $.ajax 方法根本不需要放在 document.ready 回调中。

于 2013-09-15T16:38:38.437 回答