Access-Control-Allow-Origin $ .ajax不允许

时间:2013-07-18 12:22:21

标签: ajax json callback jsonp cors

我正在尝试加载此公共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使用$ .ajax(),我收到以下错误:

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: *");的情况下执行此操作?

2 个答案:

答案 0 :(得分:1)

由于此标头Access-Control-Allow-Origin:https://api.paris.fr,浏览器不允许您这样做。作为一种解决方法,您可以使用代理。制作一个PHP脚本(或类似的),从原始源获取JSON并输出它。

<强> 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
})

答案 1 :(得分:-1)

您可以尝试$ .ajax({crossDomain:true})。不确定它会有所帮助。