使用http GET阻止的AngularJS Cross Origin请求

时间:2016-09-01 20:27:22

标签: angularjs cors http-get

我需要访问 http://www.wienerlinien.at/ogd_routing/XML_TRIP_REQUEST2?locationServerActive=1&type_origin=any&name_origin=60201095&type_destination=any&name_destination=60200769 (返回XML文件)

- >这会导致交叉来源请求错误(不幸的是,服务只能通过http获得)。

我还在我的服务器中启用了跨源。但是没有任何成功。

gulp.task('browser-sync', function () {
    browserSync({
        notify: true,
        port: 8000,
        server: {
            baseDir: "dist",
            middleware: function (req, res, next) {
                res.setHeader("Access-Control-Allow-Origin", "*");
                next();
            }
        }
    });
});

这是执行http请求的函数:

  this.requestjourney = function (id1, id2) {
        
        var promise = $http({
            method: 'GET',
            timeout: 5000000,
            // url: "http://www.wienerlinien.at/ogd_routing/XML_TRIP_REQUEST2?locationServerActive=1&outputFormat=JSON&type_origin=any&name_origin=Reumannplatz&type_destination=any&name_destination=Stephansplatz", 
            url: "http://www.wienerlinien.at/ogd_routing/XML_TRIP_REQUEST2?locationServerActive=1&type_origin=any&name_origin=" + id1 + "&type_destination=any&name_destination=" + id2,             
            locationServerActive: 1,
            excludedMeans: 0,
            excludedMeans: 1,
            excludedMeans: 3,
            excludedMeans: 4,
            excludedMeans: 5,
            excludedMeans: 6,
            excludedMeans: 7,
            excludedMeans: 8,
            excludedMeans: 9,
            excludedMeans: 10,
            excludedMeans: 11,
            contentType: 'application/x-www-form-urlencoded; charset=utf-8'
        });

        return promise;
    }

是否有任何类型的烹饪书解决方案在angularJS中修复交叉oringin请求?或解决方法?

提前致谢, 沃尔夫冈

1 个答案:

答案 0 :(得分:1)

您确定在服务器端启用了CORS吗? 当我从我的网页请求URL时,我没有得到“Access-Control-Allow-Origin”标题。 (并且Firefox抱怨开发者控制台中缺少标题。)此标题是工作的最低要求。

在此处阅读更多内容:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Preflighted_requests

如果有疑问,请首先尝试使用jQuery而不是Angular,例如使用$ .get(url)。