2016-09-26 50 views
-2

無法將包含「#」的參數從ajax發送到點網絡服務。無法從ajax發送包含「#」的點網絡服務參數

var s = encodeURI(
    "http://subdomain.mydomain.domain.asmx/getData?OUserId=" + UserId + 
    "&Token=" + Token + 
    "&OrgId=" + OrgId + 
    '&Message=' + Message + 
    '&Schoolid=' + SchoolId + 
    '&SessionId=" ' + SessionId + 
    '&UnicodeValue=' + UnicodeValue + 
    '&ClassID=' + ClassIdCommaSeparated.toString() 
); 

$.ajax({ 
    url: s, 
    error: function(err) { 
     alert(err); 
    }, 
    success: function(data) {.... 
    } 
}); 

這裏classIdCommaSeparated是1#1#1#1#1,1#1#1#1#1,1#1#1#1#1

+1

當您提出您的問題時,文本區域右側有一個大的橙色**如何格式化**框,其中包含有用的信息。還有一個格式化輔助工具的整個工具欄。和一個** [?] **按鈕提供格式幫助。 *和*位於文本區域和「發佈您的問題」按鈕之間的預覽區域(以便您必須滾動查看按鈕才能找到該按鈕,以鼓勵您查看該按鈕),以顯示帖子在發佈時的樣子。明確你的帖子,並證明你花時間這樣做,提高你獲得良好答案的機會。 –

+0

'encodeURI'不編碼'#',你需要使用'encodeURIComponent'單獨編碼每個參數以正確編碼'#' – apokryfos

+0

我已經修復了你的格式。 –

回答

1

使用encodeURIComponent上的各個部分,而不是encodeURI對全:

var s = "http://subdomain.mydomain.domain.asmx/getData?OUserId=" + encodeURIComponent(UserId) + 
     "&Token=" + encodeURIComponent(Token) + 
     "&OrgId=" + encodeURIComponent(OrgId) + 
     '&Message=' + encodeURIComponent(Message) + 
     '&Schoolid=' + encodeURIComponent(SchoolId) + 
     '&SessionId=" ' + encodeURIComponent(SessionId) + 
     '&UnicodeValue=' + encodeURIComponent(UnicodeValue) + 
     '&ClassID=' + encodeURIComponent(ClassIdCommaSeparated.toString()); 

$.ajax({ 
    url: s, 
    error: function(err) { 
     alert(err); 
    }, 
    success: function(data) {.... 
    } 
}); 

從技術上講,這兩個名稱(=前)和值(=後)需要進行編碼,但是當你的名字只包括字母AZ(大寫或小寫)或數字,就像你的名字一樣,編碼它們根本不會改變它們。 (如果你不知道這些名字是什麼,你一定要通過encodeURIComponent傳遞給他們。)

0

幾個小時後,我無法理解是什麼引起了這個問題。但我曾經努力過這個問題的臨時解決方案。我已經使用了下劃線代替#並且我得到了它的工作。感謝@TJ Crowder爲了看看。