2011-12-16 13 views
0

私はアヤックスを学んだし、私はこの非常に基本的な機能をいくつかの問題に直面している:基本的なAJAX機能

機能なFetchData(URL、オブジェクトID){

var pageReqtest=null; 
    if(window.XMLHttpRequest)pageRequest=new XMLHttpRequest(); 
    if(window.ActiveXObject)pageRequest=new ActiveXObject("Microsoft.XMLHTTP"); 
    else return false; 

    pageRequest.onreadystatechange= function(){ 
     var object=document.getElementById(objectID); 
     object.innerHTML = pageRequest.responseText; 
    } 

    pageRequest.open("GET",url,true); 
    pageRequest.send(null); 

}

そして私は持っている:

<div id="control" onclick="fetchData('data.jsp','message');">Click here for Ajax!</div> 
 

しかし、不幸にも機能していないのに、関数は正しく呼び出されます。

私はEclipseで自分のプロジェクトを持っていますが、これはTomcat 6で実行しています。ページdata.jspはHTMLの1行で、data.jspはjavascript関数があるページと同じlavelに配置されています書いた

あなたはいくつかのアドバイスをありますか?

pageRequest.onreadystatechange= fucntion(){ 

これは解析されないようにJavascriptを引き起こすので、あなたの関数が定義されていないことだろう。

答えて

0

私の最善の策は、それがfunctionのあなたのスペルミスによって引き起こされる構文エラーがあるということです。


別の注意点として、コードの動作を妨げないかもしれないが、あなたの人生を困難にするかもしれないいくつかの小さなエラーがあります。

var pageReqtest=null; 

他の場所では、変数pageRequestを呼び出します。一貫性を保つ:現時点では、グローバル変数pageRequestを作成し、ローカル変数pageReqtestを完全に無視しています。

if(window.XMLHttpRequest)pageRequest=new XMLHttpRequest(); 
if(window.ActiveXObject)pageRequest=new ActiveXObject("Microsoft.XMLHTTP"); 
else return false; 

ブラウザはwindow.XMLHttpRequestwindow.ActiveXObjectの両方を持っている場合、あなたは、あなたがActiveXObjectので上書きされます、両方の、最初のXMLHttpRequestオブジェクトを作成します。これはあなたが望むものではありません。それは最適ではなく、適切なXMLHttpRequestを使用できる方が良い場合はそれを使用する方が良いです。

これを行う簡単な方法は、最初に2行目をelse ifにすることです。

そして、あなたはgetElementByIdコールでIDを逃し:あなたも欠けている

var object = document.getElementById(objectID); 
+0

こんにちは、私はすべての誤植を訂正し、現在部分的に動作しています、私は今絶対URLを使用していますonclick = "fetchData( 'WEB-INF/views/data.jsp'、 'メッセージ'); " data.jspファイルを取得するにはTomcatは私に404を与えますが、Springフレームワークを使用しています。イベントハンドラでdivをクリックするとコントローラが起動します。コントローラは通常はフォームを送信するか、コントローラをアドレス指定するリンクをクリックしてください – JBoy

+0

@JBoyそれは別の質問です。 Tomcatについての最初のことはわかりません。 – lonesomeday

+0

そのリソースは見つかりませんでしたエラー、奇妙な、私は絶対パスを示した... – JBoy

0

間違ったスペルの横にlonesomeday

で述べたように:私はこれがあるべきだと思う

var object=document.getElementById(); 

パラメータはこちらvar object=document.getElementById();

0

ルックス他の人のように私はそれに私を打つが、いずれにしても、ここではフィドルが働いている:http://jsfiddle.net/smendola/BcMMn/

彼らが言ったように、タイプミス...

関連する問題