2010-07-01 49 views
1

警報框將不顯示任何內容,並且不應該從任何URL返回任何數據,當它應該顯示谷歌頁面!有任何想法嗎?我使用POST是因爲我試圖讓它發送查詢字符串數據。(簡單)jquery ajax不返回數據

$.ajax({ 
     type: "POST", 
     url: "http://www.google.com", 
     success: function(msg) { 
      alert("Data Saved: " + msg); 
     } 
    }); 
+2

跨域策略..搜索它在這裏在SO ...或嘗試谷歌關於該主題... – Reigel 2010-07-01 09:38:57

+0

好點Reigel。我假定谷歌是作爲一個任意的例子。 – spinon 2010-07-01 09:40:52

+0

謝謝!我認爲Ajax應該能夠從任何服務器請求一個頁面,似乎有點奇怪,爲什麼這是不可能的,所以現在我向它的請求,然後我的服務器將請求外部頁面。 – 2010-07-01 09:47:41

回答

3

是的TOm,

您正在進行跨域腳本編寫。

將URL更改爲您自己域中的文件。

$.ajax({ 
     type: "POST", 
     url: "anyfileinYourDomain.xxx", 
     success: function(msg) { 
      alert("Data Saved: " + msg); 
     } 
    }); 
+0

我不認爲,更改域名會產生任何影響,因爲URL是假設鏈接到文件的。 – Starx 2010-07-01 09:43:49

+0

其實他正在進行跨域訪問。跨域Ajax有不同的技術。 – BlueBird 2010-07-01 09:44:49

+1

@Starx - 不是真的......你仍然與http://en.wikipedia.org/wiki/Same_origin_policy – Reigel 2010-07-01 09:45:20

-2

我會嘗試設置dataType爲html,看看是否有幫助。

+0

這甚至沒有意義 – 2010-07-01 09:42:17

+0

哇!非常討厭那裏。你能否收回倒票?檢查ajax調用的文檔。 http://api.jquery.com/jQuery.ajax/ 這裏是jQuery的文檔的簡短信息: 的dataType 默認:智能猜測(XML,JSON,腳本或HTML) 的數據類型你期望從服務器回來。 不知道爲什麼沒有任何意義?請解釋? – spinon 2010-07-01 09:49:08

+0

只因爲我評論並不意味着我需要投票給你,也沒有人恨你。每一個評論是讚賞。我寫它的原因沒有意義,因爲我試圖檢索谷歌主頁,它將返回HTML無論如何。有了ajax請求,我從來沒有看到它需要或可能(但我可能是錯誤的)指定返回類型,我總是把返回的數據作爲文本。 – 2010-07-01 09:53:09

0

你可以做到這一點只有當你擁有google.com我認爲至少是不太可能:)(跨域問題)

爲了克服這一點,你可以張貼到您的服務器,讓服務器連接到google.com,那麼您可以使用從google.com檢索到的數據來回複用戶。

+0

@Lukasz_Dziedzia如何做到這一點? – 2011-12-02 19:06:27

+0

簡而言之,您需要編寫與Google通信並公開數據的服務器端腳本 – dzida 2011-12-05 15:44:51