6

設定:
問題のプログラムは、AJAX 呼び出しを介して、呼び出し元と同じパッケージに含まれるターゲット プロシージャにフォーム データを送信しようとします。これは、安全な接続 (HTTPS) を使用するサイトに対して行われます。ここで使用されているテクノロジーはPLSQLDOJO JavaScript ライブラリーです。開発ツールは基本的にテキストエディタです。

コードスニペット:

> function testPost() {  
>>    dojo.xhrPost( {  
             url: ''dr_tm_w_0120.test_post'',  
             form: ''orgForm'',  
             load: testPostXHRCallback,  
             error: testPostXHRError  
            });  
      }  

> function testPostXHRCallback(data,ioArgs) {  
>>          alert(''post callback'');  
          try{  
          dojo.byId("messageDiv").innerHTML = data;  
          }  
          catch(ex){  
                if(ex.name == "TypeError")  
                {  
                  alert("A type error occurred.");  
                }  
          }   
          return data;  
       }         
> 
function testPostXHRError(data, ioArgs) {    
>>          alert(data);  
          alert(''Error when retrieving data from the server!'');  
          return data;  
       }    

問題:
IE6 (ユーザーベース全体で使用) を使用すると、サーバーから返される応答が 404 エラーになります。

観察:
プログラムは Firefox で正常に動作します。
呼び出しプロシージャは、同じパッケージ内のプロシージャをターゲットにすることはできません。
呼び出し手順は、外部サイト (http、https の両方) をターゲットにすることができます。
フォーム データの投稿ではない、パッケージ内の他の AJAX 呼び出しは正常に機能します。
私はインターネットを検索し、熟練したチーム メンバーに相談しましたが、この問題に十分に対処するものは何も見つかりませんでした。
* Dojo サポート フォーラムで Q&Aを試みました。

質問:
どのようなトラブルシューティング手法をお勧めしますか?
HTTPS 分析に推奨されるトラブルシューティング ツールは何ですか?
問題が何であるかについての仮説はありますか?
完全な (悪い) ハッキングではない回避策のアイデアはありますか?

エド。ソリューション
lomaxx、フィドラーチップの thx。それを入手してデバッグツールとして使用することがどれほど素晴らしいことか、あなたにはわかりません。それを起動した後、これは私が見つけたものであり、どのように修正したかです(少なくとも短期的には):

> ef Fri, 8 Aug 2008 14:01:26 GMT dr_tm_w_0120.test_post: SIGNATURE (parameter names) MISMATCH VARIABLES IN FORM NOT IN PROCEDURE: SO1_DISPLAYED_,PO1_DISPLAYED_,RWA2_DISPLAYED_,DD1_DISPLAYED_ NON-DEFAULT VARIABLES IN PROCEDURE NOT IN FORM: 0

サーバーからのそのメッセージを見た後、私は Fiddler をもう少し動かして、そこから他に何が学べるかを調べました。Web フォームの値を表示する WebForms タブがあることがわかりました。ご存知でしょうか、xxx_DISPLAYED_上記の " " フィールドがその中にありました。

PLSQLWebコードで明示的に作成していないため、これらのフィールドが存在する理由はまだよくわかりません。しかし、正しく機能するためには、ターゲット プロシージャにそれらをパラメータとして含める必要があることを理解しています。繰り返しIE6ますが、Firefox は正常に動作していたので、これは私の場合のみです。

まあ、それは短期的な答えとそれを修正するためのハックです。願わくば、この分野でのもう少しの作業が、ここで行われている基本事項のより良い理解につながることを願っています.

4

1 に答える 1

4

最初の呼び出しポートは、Fiddlerを起動し、ブラウザーとの間でやり取りされるデータを分析することです。

ヘッダー、実際に呼び出される URL、および AJAX メソッドに渡されるパラメーター (存在する場合) を見て、サーバーに到達する前にすべてが適切に表示されるかどうかを確認してください。

それがすべて問題ないように見える場合、ロギングまたはAJAXメソッドでのトレースを介して実際にサーバーにヒットしていることを確認する方法はありますか?

ed: 私が試みるもう 1 つのことは、非 ajax ベースの呼び出しを使用してサーバー上で AJAX メソッドを呼び出すテスト ページを作成し、fiddler でトラフィックを分析して 2 つを比較することです。

于 2008-08-08T03:47:22.703 に答える