2010-04-20 15 views
0

我正在寫與asp.net,C#和jQuery的Web應用程序。 大部分時間我正在向瀏覽器寫入動態html,並使用不同的Web服務來獲取所需的內容。通過wcf服務jQuery的生活和回調

我的服務電話:

function WriteProducts(currentIndex, selectedCategoryId, callback) { 
    var d = new Date(); 
    MyAppServices.GetProducts(selectedCategoryId, currentIndex, 8, 
     d.getTime().toString(), callback, function func() { 
      alert('failure'); 
     }); 
} 

請求通常被翻譯成這個(使用Firebug我對其進行監控):

http://localhost:8080/MyApp/MyAppServices.svc/GetProducts?categoryId=0&fromIndex=0&toIndex=8&randomNumber=%221271800014441%22 

的問題時,HTML控件的部分動態地呈現啓動需要響應點擊事件。這是當我開始使用jQuery的活法:

$('.filter').live('click', function(event) { 
    WriteProducts(0, selectedCategoryId, PopulateDivs); 
}); 
從某些原因

現在,傳遞給服務器的請求變成這樣:

http://localhost:8080/MyApp/MyAppServices.svc/GetProducts?categoryId=**%2217%22**&fromIndex=0&toIndex=8&randomNumber=%221271799783355%22 

在哪裏,這些22%從何而來?如果我將它們取出,則請求會成功通過。 我不知道誰插入這些%22,但他們在這裏造成破壞!

夥計們,你們有沒有線索?

回答

1

可能是因爲日期字符串需要轉換爲數字,看起來腳本是在字符串周圍加引號。 :

function WriteProducts(currentIndex, selectedCategoryId, callback) { 
    var d = new Date().getTime(); 
    MyAppServices.GetProducts(selectedCategoryId, currentIndex, 8, 
     d, callback, function func() { 
      alert('failure'); 
     }); 
} 

編輯:更新了答案

+0

大聲笑,感謝您接受的答案,但我意識到的時候已經是數......所以沒有必要將其轉換爲字符串,然後回來。所以,我已經更新了答案:P – Mottie 2010-04-21 05:23:03

1

22%是一樣的」,所以我猜這個變量selectedCategoryId實際上是帶有值字符串‘‘17’’。

嘗試設置一個斷點,並檢查值。

由於您沒有包含所有相關的代碼,所以很難說一些確鑿的事情。