2013-07-18 134 views
0

我試圖加載這個公共API:

https://api.paris.fr:3000/data/1.1/QueFaire/get_geo_activities/?token=3fc939c673e62e7a161ef036699c0a22bc1eed9f076da6236eaca89ab6ef4521&created=0&lat=48.8742&lon=2.3470&radius=1000&offset=0&limit=30使用$阿賈克斯(),我收到以下錯誤:

Origin http://localhost:8000 is not allowed by Access-Control-Allow-Origin. 

如何在不使用JSONP的情況下執行此操作? api.paris.fr不接受?callback =?

此外,由於api.paris.fr不是我的,我怎樣才能做到這一點沒有header("Access-Control-Allow-Origin: *");

+0

順便說一下,我無法訪問該鏈接。 – mvw

+0

該鏈接適用於我。 –

+0

我現在看到它,通過VPN。請忽略我的評論。 – mvw

回答

1

由於此標頭Access-Control-Allow-Origin:https://api.paris.fr瀏覽器不會讓你這樣做。作爲解決方法,您可以使用代理。製作一個從原始源獲取JSON並輸出它的PHP腳本(或類似的)。

apiproxy.php

<?php 
echo file_get_contents("https://api.paris.fr:3000/data/1.1/QueFaire/get_geo_activities/?token=3fc939c673e62e7a161ef036699c0a22bc1eed9f076da6236eaca89ab6ef4521&created=0&lat=48.8742&lon=2.3470&radius=1000&offset=0&limit=30"); 

jQuery的

$.get("http://yourserver.com/apiproxy.php", function(data) { 
    // use data 
}) 
+0

謝謝@ hein-andre-gronnestad它的工作。我添加了'header('Content-type:text/json'); header('Access-Control-Allow-Origin:*');'以及echo()之前的代理 –

+0

@RaduChiriac這應該是個訣竅。不過你應該使用'Content-Type:application/json'。 –

-1

您可以嘗試$就({跨域:真})。不確定它有幫助。

相關問題