4

値が PHP スクリプトにスローまたはデコードされるように、jQuery Ajax を使用して値 (Windows パス) を json に転送する必要がありますが、json でバックスラッシュを含む値を読み取ることはできません。バックスラッシュを含むパス全体を使用して、json 値に転送する必要があります。

私のサンプルコード:

/*==========================================================================*/


var file_name = "C:\WINDOWS\Temp\phpABD.tmp";

var jsonSearchContent = "{\"file_name\":\""+file_name+"\"}";


            $.ajax({
                type:"POST",
                dataType: "html",
                url: url,
                data: {sendValue:jsonSearchContent},
                complete: function (upload) {
                    alert(upload.responseText);
                }
            }
            );
/*==========================================================================*/

前もって感謝します。

4

2 に答える 2

5

それをエスケープします。

var file_name = "C:\\WINDOWS\\Temp\\phpABD.tmp";

ちなみに、json形式でphpに送信する必要はありません。値を直接送信するだけjson_decodeで、php側で行う必要はありません。

data: {file_name: file_name},
于 2012-10-08T03:55:28.727 に答える
3

JavaScript のバックスラッシュ文字は、タブ、キャリッジ リターンなどの特殊文字をエスケープするために使用されます。JavaScript 文字列では、実際のバックスラッシュ文字を表したい場合は'\\'、単一のバックスラッシュとして扱われます。これを試して:

$.ajax({
    type:"POST",
    dataType: "html",
    url: url,
    data: {
        sendValue: {
            file_name: "C:\\WINDOWS\\Temp\\phpABD.tmp"
        }
    },
    complete: function (upload) {
        alert(upload.responseText);
    }
});

これは、javascript 文字列に関する w3schools ページです。

于 2012-10-08T03:59:52.137 に答える