2012-04-25 46 views
0

我的域名訪問外部Web服務在阿賈克斯我知道我可以通過創建一箇中間文件調用這樣繞過同一域策略:不能用PHP

$.getJSON('service_facade.php', function(data) { 

     options.series = data; 
    // Create the chart 
    var chart = new Highcharts.Chart(options); 
}); 

的service_facade.php內容看起來像這在php中:

print_r($_GET["http://myservice.com/parameters"]); 

問題是我正在訪問的圖表不是呈現。我做錯了嗎?

+0

[Ajax跨域問題]的可能重複(http://stackoverflow.com/questions/1974452/ajax-cross-domain-question) – jrummell 2012-04-25 17:53:31

回答

0

圍繞同一政策的方式是創建一個php文件或類似的服務交互爲你。它不受像AJAX這樣的政策的約束。一旦你調用了執行遠程域調用並返回數據的facade php文件,你可以通過php訪問這些數據。

2

這是因爲同源策略會將Ajax請求限制到頁面來自同一個域。這意味着您無法訪問域外的Ajax API。

這裏有一個叫做Cross-Origin Resource Sharing (CORS)的規範,它可以解決這個問題,但是我不知道這個規範還在實施中。