私はこの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番目の場合)の&前の最初の部分のみを取得することです(空白にも注意してください!)&longsmart
jquery ajaxのドキュメントを読んだprocessDataところ、クエリ文字列などに使用されるものであるため、falseに設定する必要があります。追加しました
processData: false
しかし、私はまだ前の用語を取得してい&ます。に(またはそのようなもの)encodeURIComponentに変わるので、私は使いたくありません。私が必要としているのは、データベースに保存される完全な値です。これどうやってするの?&long & elegantsmart & 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()です、、、特殊文字を変換しませんか?