我有以下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中执行脚本时,我收到以下错误:
当在chrome中执行脚本时,我收到以下错误:
知道为什么会这样吗? :/我完全糊涂了......
有人可以帮我解决这个问题吗?
谢谢堆!
答案 0 :(得分:1)
使用JSONP时,服务器的响应会被送到回调函数并以javascript身份执行(请参阅此处What is JSONP all about?)
因此,在以角度形式发出JSONP请求时,您需要指定一个回调函数:
回调的名称应该是字符串JSON_CALLBACK
来自docs
您的JSON字符串正在执行,但它本身不是有效的javascript语句,因此是错误。
尝试使用$http.get,而不是按照您的预期使用。