2012-06-19 100 views
-3

我得到一個這樣的錯誤,$ Ajax並不是工作

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#btnsubmit").click(function() { 
    $.ajax({ 
     type: "POST", 
     url: "loginform.aspx/getdataval", 
     data: "{'uname':'" + $("#TextBox1").val() + "','passwod':'" + $("#TextBox2").val() + "'}", 
     contentType: "application/json;charset=utf-8", 
     dataType: "json", 
     success: function (msg) { 
     alert("welcome"); 
     AjaxSucceeded(msg); 
     }, 
     error: function (xhr, ajaxOptions, thrownError) { 
     alert("what is the problem") 
     } 

    }); 
    }); 
}); 

function AjaxSucceeded(result) { 
    alert(result.d); 
    var Emp = result.d; 
    $("#output").append('<p>' + Emp.Sname + ' ' + Emp.Sno + '</p>'); 
} 
</script> 

$ AJAX不是一個函數,爲什麼?當我運行這個腳本時,我得到錯誤,它沒有運行,有什麼問題?

感謝

+0

在執行就緒回調之後,您是否正在導入另一個覆蓋'$'的庫?您可能能夠將定義回調的問題解決爲'$(document).ready(function($){...})'(即讓它接受對jQuery的引用)。 –

+0

不,沒有任何其他庫 –

+1

適合我工作:http://jsfiddle.net/antyrat/ZmYqh/ – antyrat

回答

0

爲JSON標準說雙引號您可能必須與數據串的單/逗樂引號的問題。
您還可以簡化contentType。
我傾向於通過使用ajaxSetup來包含轉換器和ajax本身來簡化我對.d在asp.net中的使用,如下所示:(請注意,使用像這樣的轉換器可以在jQuery 1.5中使用,因爲該語法。重構出ajaxSetup如果你喜歡,但我覺得它可以幫助我,我只有這樣做一次,當我有多個Ajax調用)

$(document).ready(function() { 
    $.ajaxSetup({ 
     data: "{}", 
     dataType: "json", 
     type: "POST", 
     contentType: "application/json", 
     converters: { 
      "json jsond": function(msg) { 
       return msg.hasOwnProperty('d') ? msg.d : msg; 
      } 
     }, 
     error: function(xhr, textStatus, errorThrown) { 
      var errorMessage = "Ajax error: " + this.url 
       + " : " + textStatus + " : " + errorThrown 
       + " : " + xhr.statusText + " : " + xhr.status; 
      alert(errorMessage); 
      if (xhr.status != "0" || errorThrown != "abort") { 
       alert(errorMessage); 
      } 
     } 
    }); 
    $("#btnsubmit").click(function() { 
     var pString = '{"uname":"' 
      + $("#TextBox1").val() + '","passwod":"' 
      + $("#TextBox2").val() + '"}'; 
     $.ajax({ 
      url: "loginform.aspx/getdataval", 
      data: pString, 
      success: function(msg) { 
       alert("welcome"); 
       AjaxSucceeded(msg); 
      } 
     }); 
    }); 
}); 

// converter gives us the result instead of the .d here 
function AjaxSucceeded(result) { 
    alert(result); 
    var Emp = result; 
    $("#output").append('<p>' + Emp.Sname + ' ' + Emp.Sno + '</p>'); 
} 

編輯:。在jQuery 1.9,你應該綁定阿賈克斯設置爲例如:

$(document).ajaxSetup({..more code 
相關問題