2

現在、タイトルに記載されている問題が発生しており、バックサッシュを二重のバックスラッシュに適切に置き換える方法が見つからないため、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);
        }
    });
}
4

1 に答える 1

7

WSParameters.replace(/\\/g, "\\\\");やるべきだし、FF18でも。JSON.stringifyを使用すると、これは自動的に行われることに注意してください。また、多くのコンソール出力 (Firebug など) は文字列の内容を引用符で囲みますが、エスケープしないことに注意してください。

于 2013-01-31T12:05:09.347 に答える