2010-12-20 76 views
0

下面是我的JavaScriptJQuery的自動完成與ASP.Net

<script> 
    $(function() { 
     function log(message) { 
      $("<div/>").text(message).prependTo("#log"); 
      $("#log").attr("scrollTop", 0); 
     } 

     $("#city").autocomplete({ 
      source: function (request, response) { 
       $.ajax({ 
        url: "getpostcodes.aspx", 
        dataType: "jsonp", 
        data: { 
         like: request.term 
        }, 
        success: function (data) { 
         response($.map(data.RegionList, function (item) { 
           return { 
           label: item.Detail, 
           value: item.Detail 
          } 
         })); 
        } 
       }); 
      }, 
      minLength: 2, 
      select: function (event, ui) { 
       log(ui.item ? 
       "Selected: " + ui.item.label : 
       "Nothing selected, input was " + this.value); 
      }, 
      open: function() { 
       $(this).removeClass("ui-corner-all").addClass("ui-corner-top"); 
      }, 
      close: function() { 
       $(this).removeClass("ui-corner-top").addClass("ui-corner-all"); 
      } 
     }); 
    }); 
</script> 

,下面將我的JSON服務器

{"RegionList":[{"Detail":"2250, GOSFORD"}]} 

返回,但我的自動完成不出來結果呢?我做錯了什麼?

+0

解決了問題。我所要做的就是將JSON結果包裝到回調中,因爲它使用JSONP :)。 – Aneef 2010-12-21 09:05:36

回答

1

什麼是HTTP狀態碼響應?我有問題,有時是因爲我收到了答案,但狀態代碼是500

+0

狀態碼?當我單獨請求該頁面時,它會打印出JSON。也當我嘗試了一個asp.net頁面的多重autocomplete示例與來自php的完全相同的輸出。它與PHP示例一起工作,但使用asp.net失敗?!json是一樣的。 – Aneef 2010-12-20 15:54:36

+0

檢查請求中的http狀態(Firebug或類似的東西)。如果它的200,它的好。但我有這個問題 – knokio 2010-12-20 22:14:12

+0

Yeap檢查了狀態和它的200,並且它返回一個JSON?我必須做其他事情來支持JSONP嗎? – Aneef 2010-12-21 06:09:09