ホームページ > ウェブフロントエンド > jsチュートリアル > 特殊文字を含む Ajax 送信パラメータに対する迅速な解決策

特殊文字を含む Ajax 送信パラメータに対する迅速な解決策

亚连
リリース: 2018-05-24 10:29:25
オリジナル
1758 人が閲覧しました

ここで、特殊文字を含む Ajax 送信パラメータの問題に対する簡単な解決策を紹介します。お役に立てれば幸いです。

JQuery AJAX では、パラメーターに &'#@ などの特殊文字が含まれています。このとき、渡されるパラメーターが変更されているため、AJAX の実行時に問題が発生します。 :

オプション 1:

$.ajax({
  url: '/ashx/ajax.ashx',
  type: 'post',
  data: 'option=delete&name=11&adb, success: function (data) { if (data != 'error ') { } } }); '
ログイン後にコピー

上記で実行された ajax は、ajax.ashx ページをリクエストするときに、11&abd という名前のデータを非同期的に削除します。操作の実行後、取得した name パラメーターは 11 です。名前 11 のデータは削除されていないことがわかります。これは、前の 2 つのパラメータを 3 つのパラメータ オプション、name、abc に変換するためです。この時点では、別のメソッドが必要です。 :

$.ajax({
  url: '/ashx/ajax.ashx',
  type: 'post',
  data: {
    'option': 'delete',
    'name': '11&adb'
  },
  success: function(data) {
    if (data != 'error') {}
  }
});
ログイン後にコピー

上記の json 形式を使用してパラメータを渡すと、特殊文字によるパラメータ エラーを回避できます。

オプション 2: 統一エンコード UTF-8.

1.JSP ページ:

<%@ page language="java" pageEncoding="UTF-8"%>

2.Ajax.js ページ: パラメーターを渡すとき、特殊文字を含むパラメーターは、escape(encodeURIComponent() を使用してトランスコードされる場合があります) ) 関数が作成され、Backstage! に渡されます。

var url = "/ZX/servlet/AddMemoServlet memo=" + memoCode + "&otherMemo=" + escape(encodeURIComponent(otherMemo)) + "&applNo=" + applNo.innerText.substr(0, 16); //alert("url="+url); 
xmlHttp.open("POST", url, true); 
xmlHttp.onreadystatechange = doMemo; 
xmlHttp.send(null);
ログイン後にコピー

3. 例: サーブレットの doGet メソッド内: request.setCharacterEncoding("text/xml;charset=utf-)" 8") ; response.setHeader("Cache-Control", "no-cache"); ... //以下は、Ajax の URL によって渡されるパラメータ値に特殊文字が含まれている問題とバックエンド解析の問題を解決します。エラーが発生します: utf-8 を使用します。 urlDecoder=new java.net.URLDecoder(); String otherMemo = urlDecoder.decode(request.getParameter("otherMemo"),"utf-8"); の方法で java.net.URLDecoder をデコードします。 logger.info("otherMemo: " + otherMemo);

上記は皆さんのためにまとめたもので、今後皆さんのお役に立てれば幸いです。

関連記事:

AjaxリクエストにFormDataを使用してAjax経由でファイルをアップロードする

ajaxを使用して非同期更新リクエストを実装する

jQuery Ajaxでファイルをアップロードする方法

以上が特殊文字を含む Ajax 送信パラメータに対する迅速な解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート