2010-11-15 101 views
0

我想用jQuery ajax從數據庫中獲取一些值,然後將它們返回到數組中。jQuery ajax - 空回覆返回

我之前使用過相同的代碼,但是這次沒有任何響應被返回。雖然後期值是我期望的正確值。下面是javascript代碼,我現在用:

$.ajax({ url: '/BlogArchive.asmx/ChangePost' 
        , type: 'POST' 
        , contentType: 'application/json; charset=utf-8' 
        , data: '{FileName:"' + FileName + '"}' 
        , dataType: 'json' 
        , success: function (data) 
        { 
         var arrayList = data.d; 

         var BlogPostTitle = $(".BlogPostTitle")[0]; 
         var BlogPostDate = $(".BlogPostDate")[0]; 
         var BlogPostContent = $(".BlogPostContent")[0]; 

         $(BlogPostTitle).html(arrayList[0]); 
         $(BlogPostDate).html(arrayList[1]); 
         $(BlogPostContent).html(arrayList[2]); 

        } 
//     , error: function (XMLHttpRequest, textStatus, errorThrown) 
//     { 
//      //There was an error 
//      alert('dfd'); 
//     } 
      }); 

是我收到的唯一的JavaScript錯誤是,數據爲空,這是我所期望的響應是空白。

看來,我從我的JavaScript調用的Web方法的名稱甚至沒有被讀取,因爲如果我改變'ChangePost'爲'ChangePost1'例如,它仍然返回一個空白的迴應,雖然我會預計會出現錯誤消息,指出無法找到Web方法。

它似乎確實認識到BlogArchive.asmx Web服務存在,因爲如果我在VB代碼中放置了會產生錯誤的內容,則該錯誤將顯示爲響應。

我相信這肯定是一件簡單的事,我做錯了。任何幫助,將不勝感激。

+0

是否有你將POST變量[數據屬性]設置爲JSON字符串而不僅僅是JSON對象的原因? – 2010-11-15 15:31:57

+1

@bradchristie - http://encosia.com/2008/06/05/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax/ – jball 2010-11-15 15:35:56

回答

0
, data: '{FileName:"' + FileName + '"}' 

似乎很奇怪。你大概的意思是:

, data: {FileName: FileName} 

(或'FileName=' + FileName

此外,你有沒有檢查通過螢火蟲或類似的請求(和響應)?

+0

是啊使用螢火蟲!它將爲您解決這些問題節省大量時間! +1 – 2010-11-15 15:33:08

+0

請參閱「JSON,對象和字符串:哦,我的!」部分[博客文章](http://encosia.com/2008/06/05/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax/)查看爲什麼字符串文字是需要與asp.Net – jball 2010-11-15 15:39:51

+0

感謝您的答覆 - 我試着改變'數據'行到你建議的方式,但我仍然得到同樣的空白迴應。另外,是的,我使用FireBug - 這是我注意到響應是空的。我可以在'發佈'標籤中看到這些值也正確發送。 – Leah 2010-11-15 15:42:20

0

你應該嘗試使用帶最小參數的jQuery getJSON。另一件事,當你在JQuery中使用JSON時,如果答案數據不完整 (就像起始JSON字符串之前/之後的空格)可能會導致從 jQuery的空白答案。

確保使用帶有jQuery的traditionnal AJAX,您的答案數據是正確的。