[英]How do you get content from another domain with .load()?
使用.load()(或任何jQuery ajax函數)從我的域上的任何位置請求數據都可以正常工作。
嘗試訪問其他域中的URL不起作用。 你怎么做呢? 另一個域也恰好是我的。
我讀到了你可以用PHP做的一個技巧,並制作一個獲取內容的代理,然后你在服務器上的php位置使用jQuery的ajax函數,但是你仍然在自己的服務器上使用jQuery ajax,這樣就不算了。
有一個好的插件嗎?
編輯:我發現了一個非常好的jQuery插件,允許您使用任何jQuery函數從其他頁面請求內容,就像您在自己的域中的普通ajax請求一樣。
帖子: http : //james.padolsey.com/javascript/cross-domain-requests-with-jquery/
插件: https : //github.com/jamespadolsey/jQuery-Plugins/tree/master/cross-domain-ajax/
這是因為跨域策略,在排序中,意味着使用客戶端腳本(也稱為javascript ...),您無法從其他域請求數據。 幸運的是,大多數服務器端腳本都不存在此限制。
所以...
使用Javascript:
$("#google-html").load("google-html.php");
PHP中的“google-html.php”:
echo file_get_contents("http://www.google.com/");
會工作。
就瀏覽器而言,不同的域=不同的服務器。 使用JSONP來執行請求或使用PHP代理。 您可以使用jQuery.ajax()
來執行跨域JSONP請求。
一個非常簡單的解決方法是使用Yahoo的YQL服務,該服務可以從任何外部站點檢索內容。
我已經在這個使用JavaScript和YQL的示例中的幾個站點上成功完成了這項工作。 http://icant.co.uk/articles/crossdomain-ajax-with-jquery/using-yql.html
此示例是博客文章的一部分,其中還概述了其他一些解決方案。 http://www.wait-till-i.com/2010/01/10/loading-external-content-with-ajax-using-jquery-and-yql/
我知道另一個有效的解決方案。 它不需要你改變JQuery。 它確實要求您可以在您的域中站起來ASP頁面。 我自己用過這個方法。
1)創建一個proxy.asp頁面,如本頁http://www.itbsllc.com/zip/proxyscripts.html
2)然后你可以做一個JQuery加載函數並將其提供給proxy.asp?url = .......在該鏈接上有一個如何格式化它的例子。 無論如何,您將外部頁面URL和所需的mime類型作為get變量提供給本地proxy.asp頁面。 我使用的兩種mime類型是text / html和image / jpg。
請注意,如果您的目標頁面包含具有相對源鏈接的圖像,則可能無法加載。 我希望這有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.