2

jQuery を介してGETサービス メソッドに対して Ajax 呼び出しを行っています。問題は、使用されるパラメーターの値に文字が含まれる可能性があるため、メソッド/を使用してパラメーターから特殊文字をエスケープすることにしました。encodeURIComponent()その結果、/文字が変換され%5、エスケープされたパラメーターが Ajax 要求で使用されようとします。私のコードは次のようになります。

var id = "some/id";

$.ajax({
url: "http://www.mywebsite.com/getValue/" + encodeURIComponent(id),
dataType: "text",
type: 'GET',
async: true,
cache: false,

    success: function (response, textStatus, jqXHR) {
    alert("success");       
    },

    error: function (jqXHR, textStatus, errorThrown) {
    alert("error");
    }
});

unescapes何らかの方法で uri 値をjQuery すると、サーバーへの呼び出しが行われず、エラー コードが表示されます404 error(パラメーターに no/が存在する場合、呼び出しは正常に機能します。

Ajax呼び出しでそのようなパラメーターを送信する方法、またはコードで何が間違っているのでしょうか?

4

1 に答える 1

-1

「/」のエンコードを回避するには、encodeURIComponent を encodeURI に置き換えることができます。ソース

サイドノート - %5 はバックスラッシュのエンコードされたバージョンですが、指定した例はスラッシュ用です。これは、別の追加の問題を示している可能性があります。

于 2012-12-14T21:38:01.623 に答える