2010-11-10 39 views
2

問題不能使AJAX調用

我不能與window.location.reload()這是成功的呼叫內使用刷新頁面內window.location.reload()對雅虎做出的。

任何提示如何修復。 整個代碼工作正常,它正在調用cse服務器從那裏獲取內容保存在雅虎。但我必須手動刷新頁面才能顯示內容。我希望它是自動的,所以我用window.location.reload()但那不工作。任何建議如何做到。下面的功能實際上是一個按鈕的功能。

+0

請張貼腳本的描述並沒有提供足夠的細節 – mpapis 2010-11-10 16:42:02

+0

是否JSON驗證? jsonlint.com – Incognito 2010-11-10 16:53:06

+0

也許我是誤解。你說的var request = Yahoo ...工作得很好,你會得到迴應。但是,然後你說你通過POST將該響應發送到服務器2。我沒有看到第二個電話。我看到一個GET ajax調用,但是你不會傳遞數據。另外,當你有YAHOO.util的東西時,爲什麼直接使用xmlHttp? – Prescott 2010-11-10 17:35:45

回答

1

這就是問題所在。

如果您的腳本是從CSE服務器的域運行的,則無法將數據發送到雅虎服務器。這是javascript的主要限制。同樣,如果運行yahoo域,您可以向其發送數據,但不能將數據發送到CSE服務器,除非它是yahoo域的一部分。

將工作: 從blahblahblah.yahoo.com獲取數據,然後將數據發送到somedomain.yahoo.com

是行不通的: 從blahblahblah.somesite.com獲得數據並將數據發送到somedomain.yahoo如果您從「csce.unl.edu」獲取數據並從域中運行(也就是在該域的瀏覽器窗口中運行腳本),則只能將數據發送到以「.unl.edu」結尾的網站。所以你可以發送或接收來自「test.unl.edu」,但不是一些雅虎網站。

解決方案: 在某個網絡服務器上託管代理腳本,或將所有代碼寫入PHP。這裏是一個代理腳本,就是兩個大的參考,第二連桿實際上提供了一個給你: Link 1 Link 2

任何需要更多的幫助,你可以讓我知道,我必須設置一個自己,在我的服務器,如果遇到問題,我可以幫助你。

+0

@ LostInTheCode:對不明確的問題。我已經對上面的文字進行了修改,以顯示出現了什麼問題。 – Judy 2010-11-10 23:53:14

+0

window.location.reload()可以替換爲「history.go(0)」或「window.location.href = window」。location.href」 – LostInTheCode 2010-11-11 19:55:26

1

做你試過:

window.location = window.location;