0

ライブ Web サイトでは正常に実行されているが、ローカル開発サーバーでは実行されていない同じコードに問題があります。

div を更新する Ajax 関数があります。次のコードは、ライブ サイトで機能します。

self.xmlHttpReq.open("POST", PageURL, true);
self.xmlHttpReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
self.xmlHttpReq.setRequestHeader("コンテンツの長さ", QueryString.length);
//..div の更新...
self.xmlHttpReq.send(QueryString);

これをローカル マシンで実行しようとすると、QueryString に何も渡されません。

ただし、問題を混乱させるために、次のコードローカルで機能します。

self.xmlHttpReq.open("POST", PageURL+"?"+QueryString, true);
self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
//..div更新のもの..
self.xmlHttpReq.send(QueryString);

しかし、ローカル マシンで動作するコードは、ライブ サーバーでは動作しないため使用できません (セキュリティ上の理由から、クエリ文字列に関するポリシーが変更されています)。

ローカル マシンの関数に渡されたことを確認できるように、クエリ文字列にアラートを出すことができます。私が考えることができる唯一のことは、それがハードウェア/アップデートの問題だということです.

ライブ サイトは IIS 6 を実行しています (WIN 2003 ボックス上だと思います)。

ローカル サイトは IIS 5.1 を実行しています (XP Pro の場合)

いくつかの更新または不足しているものはありますか?

4

2 に答える 2

1

Content-Length最初の例でヘッダーを明示的に設定している理由はありますか? あなたは...これを行う必要はありません。問題が発生しても驚かないでしょう。

ああ、エンコーディングルーチンを確認してください。クエリ文字列と POST されたフォーム データのルールはまったく同じではありません。

于 2008-09-19T21:35:06.207 に答える
0

Shog9 は正しく、IIS 6 はあなたの要求を無視して正しいヘッダーを送信するのに十分賢いと思いますが、5.2 はエラーをスローします。

于 2008-09-19T21:38:13.593 に答える