2011-07-14 192 views
0
function handleReceive() { 
    if (receiveReq.readyState == 4) { 
    var chat_div = document.getElementById('div_chat'); 
    var response = eval("(" + receiveReq.responseText + ")"); 
..... 
    } 
} 

var response = eval("(" + receiveReq.responseText + ")");工作正常 線,但在服務器上(例如000webhosting.com)代碼brokes這裏。 我試圖檢查alert().在本地服務器上alert(response);返回:[object Object], 但在網絡服務器上我什麼也沒得到,腳本停在這裏執行。 我嘗試返回chat_div並且沒關係。但var response不起作用,就像其他任何行一樣。問題的eval() - 本地主機與本地主機服務器上的Web服務器

任何人都可以幫助我嗎?

+2

使用瀏覽器的開發人員工具來檢查跨站點請求錯誤,並監視對服務器的ajax請求及其響應。 – DanC

+0

如果在'var response'行之前提醒(receiveReq.responseText),會發生什麼? – icktoofay

+4

第一個問題,您正在使用eval()。 – AlienWebguy

回答

0

如果它在localhost上工作,但在web服務器上失敗,請檢查request-URL是否未硬編碼到localhost絕對路徑。

如果請求的URL是正確的,只需在兩種情況下檢查receiveReq.responseText中的內容。如果您將PHP用於您的服務器腳本,則問題可能是您的代碼生成警告或通知,並且Web服務器配置爲在您的本地主機不顯示時顯示它們。

但是你也是對的說這個問題是關於eval(),因爲@AlienWebguy說過,問題是在這裏使用它的問題。我相信有更好的解決方案。

相關問題