不能从ajax发送包含"#"的参数到。net web服务。
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) {....
}
});
这里classsidcommaseparated是1#1#1#1#1,1#1#1#1#1,1#1#1#1#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) {....
}
});
从技术上讲,名称(在=
之前)和值(在=
之后)都需要编码,但是当您的名称仅由字母A-Z(大写或小写)或数字组成时,就像您的名称一样,对它们进行编码根本不会改变它们。(如果您不知道这些名称是什么,您肯定希望通过encodeURIComponent
传递它们。)
几个小时后我还是不明白是什么引起了这个问题。但我已经找到了一个解决这个问题的临时办法。我已经使用下划线在#的地方,我得到它的工作。由于@T.J。