使用AngularJS消费Wiki Api

时间:2016-03-06 17:19:17

标签: angularjs google-chrome mediawiki-api

我有以下AngularJS:

(function() {
    'use strict';

    angular
        .module('ui-chat-app')
        .factory('wikiService', function($http) {
    var wikiService = {
        get: function(keyword) {
            return $http.jsonp('https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exlimit=1&explaintext&exintro&titles=' + keyword.name);
        }
    };

    return wikiService;

})

.controller('aiChatBrain', function($scope, wikiService) {
    wikiService.get({name: 'Sarajevo'}).then(function(data) {
        console.log(data);
    });

});

})();

当在firefox中执行脚本时,我收到以下错误:

enter image description here

当在chrome中执行脚本时,我收到以下错误:

enter image description here

知道为什么会这样吗? :/我完全糊涂了......

有人可以帮我解决这个问题吗?

谢谢堆!

1 个答案:

答案 0 :(得分:1)

使用JSONP时,服务器的响应会被送到回调函数并以javascript身份执行(请参阅此处What is JSONP all about?

因此,在以角度形式发出JSONP请求时,您需要指定一个回调函数:

  

回调的名称应该是字符串JSON_CALLBACK

来自docs

您的JSON字符串正在执行,但它本身不是有效的javascript语句,因此是错误。

尝试使用$http.get,而不是按照您的预期使用。