Javascript 将字母数字变量传递给JQuery Ajax
我有下面的JQuery代码,如果VendorDropDown.ClientID是整数,或者是可以转换为整数的字符串,那么它可以正常工作,但是如果我尝试使用像Microsoft这样的字符串值,它就会中断。PopulateSoftware函数是一个Asp.Net WebMethod,它接受一个名为vendorId的字符串参数Javascript 将字母数字变量传递给JQuery Ajax,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有下面的JQuery代码,如果VendorDropDown.ClientID是整数,或者是可以转换为整数的字符串,那么它可以正常工作,但是如果我尝试使用像Microsoft这样的字符串值,它就会中断。PopulateSoftware函数是一个Asp.Net WebMethod,它接受一个名为vendorId的字符串参数 var pageUrl = '<%=ResolveUrl("~/Default.aspx")%>' function PopulateSoftwareDropdow
var pageUrl = '<%=ResolveUrl("~/Default.aspx")%>'
function PopulateSoftwareDropdown() {
alert('{vendorId: ' + $('#<%=VendorDropDown.ClientID%>').val() + '}');
$.ajax({
type: "POST",
url: pageUrl + '/PopulateSoftware',
data: '{vendorId: ' + $('#<%=VendorDropDown.ClientID%>').val() + '}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSoftwarePopulated,
failure: function (response) {
alert(response.d);
}
});
}
使用
这将有效地用单引号将值括起来,这意味着它是一个字符串值
更准确地说,应该是这样
data: {'vendorId': $('#<%=VendorDropDown.ClientID%>').val() }
这将作为数据传递我们创建的对象{..}部分,它将由jquery转换为正确的格式字符串尝试使dropdownlist值json对类型字符串友好,并在值周围加引号。它实际上应该是双引号,如下所示:{vendorId:'+$.val+'}在实践中,两者都可以工作,但最好是安全的。@Nick,我认为整个数据不应该是字符串,但实际的键和值应该都是。。正在自动转换的值,因为传递的数据现在是实际对象。。
data: {'vendorId': $('#<%=VendorDropDown.ClientID%>').val() }