私はこのajax呼び出しを持っています
function addNewRemarksToDataBase(argRemark) {
if (argRemark != '') {
// if not blank
$.ajax({
url: '../AutoComplete.asmx/AddNewRemarks',
type: 'POST',
timeout: 2000,
datatype: 'xml',
cache: false,
data: 'argRemarks=' + argRemark,
success: function (response) {
// update the field that is source of remarks
updateRemarksSource();
},
error: function (response) {
}
});
}
};
メソッドは次のように定義されます
[WebMethod]
public void AddNewRemarks(string argRemarks)
{
BAL.BalFactory.Instance.BAL_Comments.SaveRemarks(argRemarks, Globals.BranchID);
}
問題は、ユーザーがのようなもの、long & elegant
またはのようなsmart & beautiful
ものを入力した場合、 (最初の場合)、(2番目の場合)の&
前の最初の部分のみを取得することです(空白にも注意してください!)&
long
smart
jquery ajaxのドキュメントを読んだprocessData
ところ、クエリ文字列などに使用されるものであるため、falseに設定する必要があります。追加しました
processData: false
しかし、私はまだ前の用語を取得してい&
ます。に(またはそのようなもの)encodeURIComponent
に変わるので、私は使いたくありません。私が必要としているのは、データベースに保存される完全な値です。これどうやってするの?&
amp;
long & elegant
smart & beautiful
編集することは役に立ち{ argRemarks: argRemark }
ません!関数はイベントが呼び出されません。Firebugで実行し、エラー関数にブレークポイントを設定すると、これが発生します
[Exception... "Component does not have requested interface" nsresult: "0x80004002 (NS_NOINTERFACE)" location: "JS frame :: http://localhost:49903/js/jquery-1.8.1.min.js :: .send :: line 2" data: no]"
更新2: 実行中
data: 'argRemarks=' + encodeURIComponent(argRemark)
トリックをしました。しかし、誰かがこれがどのように機能するかを理解するのを手伝ってくれますか?に変換されると思いましたが、変換&
され&
ませんでしたか?long & elegant
現在メソッドに受け取っているパラメーターは、smart & beautiful
私が望んでいたものencodeURIComponent()
です、、、特殊文字を変換しませんか?