在前端使用Bing图像搜索API

时间:2016-02-24 00:13:59

标签: angularjs azure cors bing-api

我正在尝试在前端使用Bing图像搜索API。它适用于Node.js的后端,如下所示:

router.get('/image_search', function (req, res, next) {

    request.get({
        url: 'https://api.datamarket.azure.com/Bing/Search/v1/Image?Query=%27hellow%27&$format=json',
        headers: {
            'User-Agent': 'request'
        },
        json:true,
        auth:{
            user: Config.bing.accKey,
            pass: Config.bing.accKey //identical to user val
        }
    }, function (err, resp, body) {
        if (err) {
            log.error(err);
            log.info(body);
        }
        else {
            log.info(body);
            res.json({success: body});
        }

    });

});

但在前端,我遇到了奇怪的CORS问题:

  

阻止跨源请求:同源策略禁止读取   远程资源在   https://api.datamarket.azure.com/Bing/Search/v1/Image?Query=%27hellow%27。   (原因:CORS标题'Access-Control-Allow-Origin'不匹配   '*')。

但是使用通配符,微软是不是会出错?似乎他们想允许任何人使用API​​,但实际上不允许使用通配符(我一直在那里)。所以看起来MS的一些开发人员犯了一个错误。

无论如何,这是我在前端(Angular)上的内容:

   bingSearch: function(query){

            var url = 'https://api.datamarket.azure.com/Bing/Search/v1/Image?Query=%27hellow%27';

            return $http({
                url: url,
                method: 'GET',
                headers: {
                    'Authorization': 'Basic ' + ConfigService.bing.accKey,
                    'User-Agent':'request'
                }
            }).then(function(data){
                console.log(data);
            }).catch(function(data){
                console.error(data);
            });

        },

我得到了CORS响应,这很奇怪..

0 个答案:

没有答案