我目前正在解决标题中提到的问题,我在某种程度上找不到用双反斜杠正确替换反向的方法,这样我就可以正确地将字符串作为参数提供给web服务。 让我告诉你我的尝试。其中一些确实适用于其他人,但不适合我......我目前正在使用FF18.0.1进行测试
WSParameters.replace(/\\/g, "\\\\\\\\");
WSParameters.replace("\\", "\\\\\\\\");
WSParameters.replace(/\\/g, "\\\\");
WSParameters.replace(/\\/g, "\\");
WSParameters.replace(/\\/g, "\");
WSParameters.replace("\\", "\\\\");
提前多多感谢
编辑:我应该提到它以某种方式解析为JSON并使用firebug我看到源字符串中的反斜杠,但不是在JSON视图中。也许有另一种方式?但不知何故,它已经在替换反斜杠时失败了。EDIT2:
if (noAction == false) {
$.ajax({
type: "POST",
url: "WebService.asmx/" + webMethod,
contentType: "application/json; charset=utf-8",
dataType: "json",
async: pAsync,
data: WSParameters,
success: function callFunction(result) { processPOSTResults(result, pType, pNot);},
error: function (xhr, ajaxOptions, thrownError) {
alert('Error while communicating with WebAdmin web service. - ' + xhr.status + " " + thrownError);
}
});
}
答案 0 :(得分:6)
WSParameters.replace(/\\/g, "\\\\");
应该这样做,并且在FF18中也是如此。请注意,如果您使用JSON.stringify
,则会自动完成。还要注意许多控制台输出(Firebug等)用引号包围字符串内容,但不要逃避它们。