在Firefox中启用Cors

时间:2014-11-12 18:02:15

标签: javascript jquery html ajax angularjs

在角度js中,我写下以下代码来调用api。

    $http({
        method: 'GET',
        url: 'https://www.example.com/api/v1/page',
        params: 'limit=10, sort_by=created:desc',
        //headers: {'Content-Type': 'application/json'}
        header:{'Access-Control-Allow-Origin': '*'}
    }).success(function(data){
        alert(data);
    }).error(function(){
        alert("2 error");
    });

阻止跨源请求:同源策略不允许在" url"读取远程资源。

1 个答案:

答案 0 :(得分:4)

服务器是否支持CORS完全取决于它。您无法通过请求浏览器执行此操作。服务器决定是否要提供跨源请求。

因此,如果服务器未配置为允许跨源请求,则浏览器无法更改。

制作跨源请求的另一种方法是JSONP,但服务器必须再次专门支持JSONP请求才能使用它们。

如果您有自己的服务器,那么您可以请求您自己的服务器充当代理,以从其他服务器获取请求,然后将其返还给您。服务器到服务器的请求不受跨源(仅限浏览器)的限制。这效率较低,但如果原始服务器不支持任何跨源访问且无法更改以支持它,则有时是唯一的解决方法。

如果您正在使用旨在从其他网站使用的api,那么它可能确实支持某种跨域访问,您应该从该api存在的任何文档中找出它的工作方式。如果您使用的是不打算在其他网站上使用的api,那么除非您编写自己的服务器代理,而该代理服务器代理服务于托管您网页的同一服务器,否则您将无法运气。这是通过设计这种方式完成的,因此如果他们没有明确允许这种类型的跨域访问,那么在您的网站中使用其他人的API并不容易。