2016-06-19 25 views
0

AJAX呼び出しで、以下のサンプルのように、テキストボックス値をオブジェクトとしてASP.NETページメソッドに送信しています。要求は試行のほぼ90%に失敗しクライアントがAJAX呼び出しの不正なホストヘッダーを送信しました

Bad Request
Your browser sent a request that this server could not understand.

Client sent malformed Host header

私はdata: JSON.stringify(obj)を使用していますが:私が直面してる問題は、テキストボックスの値のいずれかがspaceが含まれている場合、私はエラーを取得するということです。しかし、すべてのテキストボックスの値がspaceでなければ、要求は毎回完了します。それを理解しようとしていますが、問題を捉えることはできません。上記のコードは、開発システム上ではなく、製造上の問題なく動作します

var obj = {}; 
obj.CapCode = $.trim($('#CapTextBox').val()); 
obj.Registered_Name = $.trim($('#Registered_NameTextBox').val()).replace(/\s\s+/g, ' '); 
obj.eMail = $.trim($('#e_MailTextBox').val()); 
$.ajax({ 
    type: "POST", 
    url: 'Register.aspx/SaveRecord', 
    data: JSON.stringify(obj), 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function (resultData) { 
     try { 
      $("#User_modal").modal(); 
     } 
     catch (err) { 
      alert('ERROR:\n An error occurred while getting records. Try again.'); 
     } 
    }, 
    error: function (x, e, m) { 
     errorHandler(x, e, m, $("#btnSave"), false); 
    }, 
}); 

+0

あなたはそれを理解しましたか? – dmeu

+0

いいえ、ほとんどすべて、フロントエンド、バックエンド、サーバーログ、ページのロードなどを確認しましたが、解決策はありません。私はそれがテンプレートで使われているjquery/bootstrapプラグインによって引き起こされるかもしれないとは思っていません。テストのために、私はすべてのテンプレートcss、jsファイル、およびajaxを削除し、成功したレコードをサーバーに保存しようとしました。 – haraman

+0

私は '+'をスペースで置き換え、もう一方はサーバー側で置き換えました – dmeu

答えて

0

は、私は、これは問題の解決策かもしれないと思う、このエラーが発生しますが、私は上に十分な権限を持っていませんBCS私はそれをテストすることはできませんサーバー); http://tools.cherrypy.org/wiki/ModRewrite#Bewaretheencodingbug

URL's that are requested via HTTP must be escaped (%xx-encoded) before they are sent, but Apache2's mod_rewrite unescapes path information which may generate invalid HTTP requests. In particular, spaces (which should be escaped as "%20") are not.

# this cannot be on .htaccess (only on httpd.conf) 
RewriteMap escape int:escape 

#and when writing RewriteRule: 
RewriteRule ^(.*)$ http://localhost:6674/${escape:$1} [proxy] 
#(i.e., use ${escape:$1} instead of $1) 
関連する問題