簡體   English   中英

使用jQuery的跨站點AJAX

[英]Cross-site AJAX using jQuery

我有一個現有的jQuery插件,它可以進行大量的AJAX調用(主要是JSON)。 我想知道什么是最快允許它進行跨站點調用,即$ .get和$ .post URL不會來自同一個域。

我聽說過JSONP,但是想知道是否有人可以給我一個具體的例子來講述整個過程。 我希望盡可能對我的腳本進行微小的更改。 我應該使用各種proxy.php嗎?

感謝您的時間。

JSONP將允許您進行跨站點呼叫。 請參閱jQuery文檔。

這個概念很簡單:jQuery不會執行普通的Ajax調用,而是將<script>標記附加到<head> 為了使其工作,您的JSON數據需要包含在函數調用中。

您的服務器需要以這種方式發送信息(PHP示例):

$json = json_encode($data);
echo $_GET['jsonp_callback'] . '(' . $json . ');';

然后,您可以使用jQuery來獲取該信息:

$.ajax({
  dataType: 'jsonp',
  jsonp: 'jsonp_callback',
  url: 'http://myotherserver.com/getdata',
  success: function () {
    // do stuff
  },
});

有關更多信息,請參見: JSONP什么?

如果您可以控制遠程域,或者遠程域具有許可的crossdomain.xml ,則可以將其與其jQuery插件一起放入flXHR這樣的庫中。

您也可以使用CORS而不是JSONP,與ff,chrome,safari一起使用。 CORS設置起來不那么麻煩,只需要服務器端的過濾器。

請仔細閱讀這篇文章。說明並且類似。 只有約束是IE不支持這個和舊版本的FF,chrome也有一些問題。

http://techblog.constantcontact.com/software-development/using-cors-for-cross-domain-ajax-requests/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM