2012-01-09 44 views
1

有誰能告訴我爲什麼該代碼不起作用。在document.ready之外移動ajax請求時出現404錯誤

這個js碼在第一jQuery Mobile的頁面:

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 Mobile的頁面調用:

<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(document).ready中時,它工作正常。

+4

錯誤404表示您的網址( 「../Login」)無法找到。 – 2012-01-09 20:17:38

+0

@rontornambe @rontornambe我知道,但是,正如我在問題中所說的:當我從jQuery(文檔).ready中調用相同的jquery移動第一頁時,它工作正常,當我將jquery.ajax移動到onReady函數失敗 – aomar 2012-01-09 20:55:33

+0

您正在使用相對定位「../」,所以它可能是不正確的文件引用。您可以通過完全限定網址並執行測試來測試此假設。 – 2012-01-09 21:08:20

回答

0

我不是100%確定這會解決您的問題,但據我所知,$.ajax()功能沒有method的選項。然而,有你在你的代碼有method設置應設置一個type選項:

  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){} 
     }); 

從文檔:

默認: 'GET'

請求類型(「POST」或 「GET」),默認爲「GET」。注意:其他HTTP請求方法(如 PUT和DELETE)也可以在此處使用,但不支持所有瀏覽器的 。

來源:http://api.jquery.com/jquery.ajax/