2

我目前遇到了标题中提到的问题,并且不知何故找不到用双反斜杠正确替换反斜杠的方法,以便我可以正确地将字符串作为参数提供给 Web 服务。让我告诉你我尝试了什么。其中一些确实适用于其他人,但不适用于我......我目前正在使用 FF18.0.1 进行测试

WSParameters.replace(/\\/g, "\\\\\\\\");
WSParameters.replace("\\", "\\\\\\\\");
WSParameters.replace(/\\/g, "\\\\");
WSParameters.replace(/\\/g, "\\");
WSParameters.replace(/\\/g, "\");
WSParameters.replace("\\", "\\\\");

非常感谢提前

编辑:我应该提到它以某种方式解析为 JSON 并且使用 firebug 我在源字符串中看到反斜杠,但在 JSON 视图中看不到。也许还有另一种方式?但不知何故,它在替换反斜杠时已经失败了。

编辑2:

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);
        }
    });
}
4

1 回答 1

7

WSParameters.replace(/\\/g, "\\\\");应该这样做,在FF18中也是如此。请注意,如果您使用JSON.stringify,这是自动完成的。还要注意许多控制台输出(Firebug 等)确实用引号包围字符串内容,但不要转义它们。

于 2013-01-31T12:05:09.347 回答