我正在尝试从服务器端将字符串参数传递给 javascript 函数,该函数将被发布到 AJAX 方法。 html 是在服务器端动态生成的,我使用 onclick 属性调用 javascript 函数。问题是它适用于数值,但当我传入字符串值时出现内部服务器错误。
这是我的服务器端代码:
str.Append("<span class=\"button-accept\"><a class=\"btn btn-primary btn-sm\" onclick=\"Request('"+from.ToString()+"')\" href=\"#\"><i class=\"fa fa-check\"></i></a></span>");
这是我的 JavaScript 方法:
function Request(param) {
$.ajax({
type: "POST",
url: '<%= ResolveUrl("~/myaccount/notifications/Default.aspx/Accept") %>',
data: "{'param' : "+param+"}",
contentType: "application/json",
success: function (msg) {
msg = msg.hasOwnProperty("d") ? msg.d : msg;
alert(msg);
}
});
}
function OnSuccess(response) {
alert(response.d);
}
这是 AJAX 将调用的方法:
[WebMethod]
public static string Accept(string param)
{
return param;
}
正确的做法是什么?
最佳答案
您传递给 Web 方法的 JSON 暗示它是一个数值,请在 param
值周围添加引号:
旧
data: "{'param' : "+param+"}",
新
data: "{'param' : '"+param+"'}",
或者...
如果始终将字符串传递给您的 Request
方法,则将使用 JSON.stringify 正确处理该字符串。
data: JSON.stringify({ 'param' : param }),
关于javascript - 从服务器端将字符串传递给 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33417387/