在WEB項目中,經常會使用到jQuery進行AJAX請求,但是自從使用了.net 3.5以后,以往寫的請求語句就有些小問題了,就是返回的始終是xml,而并不是JSON,經過嘗試,只需要在$.ajax中加入 contentType: "application/json; charset=utf-8"選項就可以了,這是因為在.net 3.5以后要對contentType進行檢查,所以僅僅指定dataType的話.net就不會返回JSON了,那么我們的請求自然也就無法請求到JSON數據了。正確寫法就是這樣了: 出錯代碼
1 var url = "/Services/AccountService.asmx/UserExists"; 更正后代碼
1 var url = "/Services/AccountService.asmx/UserExists"; 但是在使用$.get、$.getJSON、$.post時確怎么也得不到JSON數據了,寫法如下: $.get代碼
1 var url = "/Services/AccountService.asmx/UserExists"; $.getJSON代碼
1 var url = "/Services/AccountService.asmx/UserExists"; $.post代碼
1 var url = "/Services/AccountService.asmx/UserExists"; 用HttpWatch查看請求返回的數據如下: 顯示代碼
1 <?xml version="1.0" encoding="utf-8"?> 看一下jQuery.extend中有關代碼: jQuery.extend
1 jQuery.extend({ 原因就是.net 3.5以后要對contentType進行檢查,如果不為json的話,就不會返回json,而get、getJSON、post擴展都再次調用了ajax,但是只傳了dataType參數,.net 3.5在檢查contentType時發(fā)現(xiàn)其不是json,便返回了xml. |
|
來自: 修行的嘟嘟 > 《軟件開發(fā)》