【发布时间】:2010-11-21 03:47:03
【问题描述】:
我环顾四周,试图找到一个优雅的解决方案,但我还没有找到。我在 .NET 中有一个 ASMX Web 服务,我试图调用它需要参数。
我在客户端使用 jQuery 来调用服务,我的 jQuery 代码如下所示:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
url: "/Reviews/HotelReview.asmx/SubmitReview",
data: "{'name': '" + name + "', " +
"'info': '" info + "'}",
processData: true,
beforeSend: function() { startSubmit(); },
complete: function() { submitComplete(); },
error: function(xhr) { submitError(xhr); },
success: function(msg) { submitSuccess(msg.d); }
});
效果很好,除非 name 或 info 包含 ' 字符,即单引号。很简单,因为我的 JSON 定义了字段值的结尾并且是单引号。当这些字段中的任何一个包含单引号时,我得到的只是“内部服务器错误”,但使用Fiddler 进行的进一步检查显示结果(我不会费心发布它们)表明单引号问题。
我已经临时放置了一些东西来删除客户端的单引号并将它们放回服务器端,但这远非优雅。有没有更优雅的方式来转义这些单引号,以便我的代码可以工作?
【问题讨论】:
标签: asp.net jquery ajax web-services