2017-06-20 78 views
1

我創建了一個HTML文件,並嘗試通過AJAX將它連接到JAVA後端。我使用JAVAseverlet。然而,發送請求部分似乎有一些問題。在瀏覽器中,它顯示xhr.open();不是一個函數。這個問題的答案通常是因爲UPPercase Open,而我的不是。我不知道爲什麼。有人幫助謝謝!!在瀏覽器中打開XMLHttpRequest不是一項功能。不是因爲小寫

function ftn_button_clicked(){ 
 
     xhr = new createXHR(); 
 
     xhr.open("GET", "/PointGenerate.java", true); 
 
     xhr.send(); 
 
     xhr.onreadystatechange = ajaxComplete; 
 
} 
 
function ajaxComplete(){ 
 
     if(xhr.readyState === 4 && xhr.status === 200){ 
 
     document.getElementById("txt1").innerHTML.value = xhr.responseText; 
 
     var num = xhr.responseText; 
 
     window.alert("good"); 
 
     } 
 
} 
 
\t \t 
 
function createXHR(){ 
 
     if(window.XMLHttpRequest){ 
 
     xhr = new XMLHttpRequest(); 
 
}else{ 
 
     xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
 
     //window.alert("1111"); 
 
} 
 
}

+0

您還沒有你的代碼調用createXHR也不是試圖調用xhr.open部分的一部分 - 事實上,你顯示的代碼可能對你的問題最沒有幫助 –

+1

'xhr = new createXHR();'因爲'createXHR'方法不返回任何東西,所以'xhr'將總是'undefined',因此你不能調用'xhr.open(..)' 。在'createXHR()'方法中返回新創建的'XMLHttpRequest'對象或'ActiveXObject' –

+0

嘗試在plunker或jsfiddle中重新創建問題並在問題中共享鏈接。這對其他人會幫助你。 – Nehal

回答

0

問題我一看便知:

  1. createXHR是一個函數,而不是一個對象,所以你不應該使用new關鍵字。
  2. xhr不從createXHR返回(即它返回undefined)。

此外,您不需要檢查ActiveXObject了。 IE已經支持XMLHttpRequest一段時間了(它已被Edge取代)。

這裏有一個快速(未經測試)重寫(對不起,我無法抗拒):

function ajax(url, data) { 
    return new Promise((resolve, reject) => { 
     var xhr = new XMLHttpRequest(); 

     xhr.onreadystatechange =() => { 
      if(xhr.status >= 200 && xhr.staus < 400) { 
       if(xhr.readyState === 4) { 
        resolve(xhr.responseText); 
       } 
      } else { 
       reject(); 
      } 
     } 

     xhr.open(data ? 'post' : 'get', url, true); 
     xhr.send(data); 

    }); 
} 

function ftn_button_clicked() { 
    ajax('/PointGenerate.java').then((responseText) => { 
     document.getElementById('txt1').innerHTML.value = responseText; 
     plotrandom(responseText); 
     window.alert('*Sign*, much better!'); 
    }); 
} 
+0

你的觀點是我的確切問題。有用!非常感謝,夥計。 –

+0

很高興聽到它。如果你接受這個問題,它會幫助我。 – fereh

相關問題