2012-01-06 15 views
-3

Jquery.postを使用してWebアプリケーションからWebページをロードするjavascriptを作成しました。私はiframeにページを表示します。 WebページはIEでは表示されますが、Firefoxでは表示されません。私はFirebugを使ってみましたが、エラーはありません。302 OKのメモがあります。 Jqueryのソースも変更してみましたが、これもうまくいきませんでした。試したJSONも動作しませんでした。その3日以上私はこの問題を解決しようとしています。私はたくさんの方法を試しましたが、それは有益でした。Jquery.postがFirefoxで動作しない

<html> 
    <head> 
    <script  type="text/javascript"src="http://ajax.microsoft.com/ajax/jquery/jquery1.4.2.min.js"> 
    </script> 
    <script type="text/javascript"> 


    function callajax() 
    { 
     var iframe =document.createElement("iframe"); 
     iframe.style.width="100%"; 
     iframe.style.height="100%"; 
     //app.getContentEl().appendChild(iframe); 
     document.body.appendChild(iframe); 
     jQuery.post('http://localhost:9090/simpleapp/formproc1',  {'param':'rajat'},function(html){ 


     var doc =iframe.contentWindow.document; 
     doc.write(html); 
     doc.close(); 
     }); 
     } 



     </script> 
     </head> 

     <body> 
     <p>Start typing a name in the input field below:</p> 
     <span></span> 
     <div id="display"></div> 
     First name: 

     <input type="text" /> 

     <button onclick="callajax()">Click me</button> 
     </body> 
     </html> 

また、間違っている可能性もありますので、postメソッドも囲みます。

 doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

// TODO自動生成されたメソッドスタブ

 PrintWriter out = response.getWriter(); 

     String par = request.getParameter("param"); 

     System.out.print("Hiii this is inside POST method"); 

     //out.println("<data><param>"+par+"</param></data>"); 

     //out.println(par); 

     //out.flush(); 

     //System.out.print(par); 

     response.sendRedirect("first.jsp"); 

     // out.println("{\"redirect\":\"first.jsp\"}"); 

     } 
+0

が警告を入れて試してみて、この方法は、ボタンのクリック後に呼び出されたかどうかを確認、私の答えを参照してください。 –

+0

「動作しない」方法を記述してください。 iframeを作成しますか? iframeには何も表示されませんか?火かき棒でjQuery.post関数を手で呼び出そうとしましたか? – codersarepeople

+0

あなたの非常に迅速な対応に感謝します。 Firebugはエラーを表示しません。しかし、応答は空です。要求は正常に終了します。また、iframeが作成されますが、Webページにiframeが設定されていません。あなたは今私を助けることができます – user1132583

答えて

1

これはSame origin policyです。 ajaxを使用して外部サイトを呼び出すことはできません。本当に使いたい場合は、JSONPを使用する必要があります。あるいは、サーバー側プロキシを使用することもできます。つまり、サーバー側で外部サイトを呼び出し、そのWebサービスにajax呼び出しを行うことを意味します。

$.ajax call working fine in IE8 and Doesn't work in firefox and chrome browsers

+0

あなたの答えをありがとう。しかし、JSONPが使用されている場合、POStメソッドのレスポンスがWebページであればどうなりますか?ウェブページはiframeに表示されますか?私は、Webページが引数としてコールバック関数として渡すことができるかどうかを意味します。 – user1132583