2016-07-23 3 views
-1

私は完全なHTMLページを返すperlプログラムでjavascript/jquery関数を使用しています.jqueryの.postを使用してCGI値をプログラムに渡して再ロードしたいと思いますページでは、提出されたデータに基づいてさらに処理されます。私は放火犯のコンソールは、200(OK)を示しjquery post成功関数がHTMLページを返さない

$.post("jqpost.cgi",{DATA:"$something"}); 

使用する場合

#!/usr/bin/perl 
use CGI; 
my $cgivars = CGI->new; 
my $data = $cgivars->param('DATA'); 

my $something = "This is some data."; 

my $display = qq|Content-type: text/html\n\n<http><head></head><body>The data submitted was $data</body></http>|; 
my $postdata = qq|Content-type: text/html\n\n 
     <http><head><script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script></head> 
     <body> 
     <script type="text/javascript"> 
     function postData() { 
     \$.post("jqpost.cgi",{DATA:"$something"}); 
     } 
     </script> 
     Click the button to submit some data<br> 
     <button value="submit" onclick="postData()">Submit</button> 
     </body></html>|; 

if ($data) { 
    print $display; 
} else { 
    print $postdata; 
} 
end; 

およびすべて/ HTMLタブは、私が見てみたいとページを示しています

には、以下のMCVEを検討しますそれが返され、渡されたデータは期待どおりに使用されます。上記のコードには返された結果を管理する関数が含まれていないことがわかります。 だから私は、私が知っているページは、ページがブラウザにロードするために開始しますが、ページの読み込みが完了したことがない

$.post("jqpost.cgi",{DATA:"$something"},function(data) { document.write(data);}); 

を使用して、返されるロードする機能を使用しようとしています。 Apacheのログには追加のデータは表示されません。

サーバから返されたページ全体を適切に表示するにはどうすればよいですか?

+0

プログラムから何を受け取っていますか、HTML、JSONなどの文字列ですか?それは実際には "*全ページ*"か、または ""、またはその他の特定の場所に追加/挿入する要素ですか?あなたのAjaxリクエストを発生させる前にあなたの* [MCVE] * "HTMLは何ですか?あなたはどんな反応を得ますか?どのような正確な結果/出力が期待され、必要とされていますか? –

+0

問題を示すMCVEを使用するために投稿を再構成しました。 –

答えて

0

document.openを閉じる必要があります。 document.writeが開いています。

document.write("Hello there!!!"); 
document.close(); 

これ以上回転しません。

+0

それは、ありがとう! –

関連する問題