2014-03-26 169 views
1

我正在爲網址http://google.com獲取電話以獲取該網站的html內容,但在ajax調用中,米,下面2個錯誤結束了,從另一個網站(http://www.google.com)使用jquery獲取HTML內容

錯誤:GET http://www.google.com/未定義(未定義)

錯誤:XMLHttpRequest的無法加載google.com。來源「本地網站的URL」不被Access-Control-Allow-Origin允許。對於第一個錯誤

代碼:

$.ajax({ 
    type : "GET", 
    cache : false, 
    url : url, 
    dataType : "xml", 
    crossDomain : true, 
    contentType : "text/html", 
    success : function(data){ 
     alert("success"); 
    }, 
    error : function(error){ 
     alert("error"); 
    } 
}); 

守則第2次故障:

$.ajax({ 
    url : url, 
    dataType : "text", 
    success : function(data){ 
     alert("success"); 
    }, 
    error : function(error){ 
     alert("error"); 
    } 
}); 

什麼設置,我需要啓用跨域調用,幫助將非常感激。

我也嘗試設置$ .mobile.allowCrossDomainPages = true和$ .support.cros = true;在ajax之前,即使這不起作用。 解決方案將非常感激。

+0

您可以使用第三方應用程序(使用服務器獲取請求)執行此操作。 –

+0

請參閱[此問題](http://stackoverflow.com/questions/1237707/load-website-into-div)獲取相關答案。你可能需要在你的服務器上有一個URL,它會返回你的Google的HTML。 – GregL

回答

0

您正在執行跨域請求,該請求被大多數瀏覽器阻止作爲安全措施。您只能在腳本運行時請求來自同一域的內容,或者需要服務器識別您的域,並通過Access-Control-Allow-Origin標頭允許跨域請求。

看到更多關於這方面的信息:http://en.wikipedia.org/wiki/Same_origin_policy

1

很久以前我創建了一個解決這個問題的項目。它是開源on GitHub

$.ajax({ 
    url: 'http://google.com', // Or your web page link 
    type: 'GET', 
    success: function(res) { 
     var headline = res.responseText; 
     htmlCodeTextArea.value = headline; 
    } 
    }); 

要下載使用:

git clone [email protected]:IonicaBizau/jQuery-cross-domain-requests.git 

,或者單擊here

然後打開index3.html文件。

+0

你的腳本不再工作:( –

+0

@KyleK它仍然爲我工作。對於問題/錯誤報告打開[問題在這裏](https://github.com/IonicaBizau/jQuery-cross-domain-requests/issues/新)。 –