Ошибка 404 при перемещении ajax-запроса за пределы документа .ready - PullRequest
1 голос
/ 10 января 2012

Может кто-нибудь сказать мне, почему этот код не работает.

Это код js на первой мобильной странице jquery:

function finish() {
          var selectedRowsVal = [];
          jQuery("input:checked").each(function(){
                selectedRowsVal.push(jQuery(this).val());
            });
          if(selectedRowsVal.length === 0){
            alert(111);
          }else{alert(selectedRowsVal.length);
             jQuery.ajax({
                url: "../Login", 
                data: {selectedRows: 1},
                method: 'post',
                error: function(XMLHttpRequest, textStatus, errorThrown){
                     alert('status:' + XMLHttpRequest.status + ', status text: ' + XMLHttpRequest.statusText);
                },
                success: function(data){}
            });
          }
        }

И это вызов функции финишана другой мобильной странице jQuery:

<div data-role="footer" data-position="fixed" data-theme="b">
            <div data-role="navbar" dir="rtl">
                <ul>
                    <li><a href="#" onclick="finish();" data-role="button">finsh</a></li>
                    <li><a href="#" data-role="button">send to many</a></li>
                    <li><a href="#" data-role="button">send</a></li>
                </ul>
            </div><!-- /navbar -->
        </div><!-- /footer -->

ошибка, вызванная обратным вызовом ajax, равна 404 not found, когда я помещаю код jQuery.ajax в jQuery (документ) .ready первой страницы (страница индекса)) работает нормально.

1 Ответ

0 голосов
/ 10 января 2012

Я не уверен на 100%, что это решит вашу проблему, но, насколько я знаю, нет опции с именем method для функции $.ajax().Тем не менее, существует опция type, которая должна быть установлена, так как в вашем коде установлено method:

         jQuery.ajax({
            url     : "../Login", 
            data    : { selectedRows: 1 },
            type    : 'post',
            error   : function(XMLHttpRequest, textStatus, errorThrown){
                 alert('status:' + XMLHttpRequest.status + ', status text: ' + XMLHttpRequest.statusText);
            },
            success : function(data){}
        });

Из документации:

type

По умолчанию: «GET»

Тип запроса («POST» или «GET»), по умолчанию «GET».Примечание. Здесь также можно использовать другие методы HTTP-запроса, такие как PUT и DELETE, но они поддерживаются не всеми браузерами.

Источник: http://api.jquery.com/jquery.ajax/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...