gpt4 book ai didi

AngularJS使用$http服务进行跨域请求

转载 作者:行者123 更新时间:2023-12-02 23:46:45 27 4
gpt4 key购买 nike

我正在尝试通过使用 Twitch API ( https://github.com/justintv/Twitch-API ) 制作一个简单的 Web 应用程序来学习 AngularJS,但我在执行 GET 请求时遇到问题,因为它是跨域请求。这是我尝试过的

angular.module('streamPlaylisterAppServices', []).factory('twitchService', ['$http',
function($http) {
return function(usercode){
console.log("usercode inside service is: " + usercode)
var authHeader = 'OAuth' + usercode;

return $http({
method: 'GET',
url: ' https://api.twitch.tv/kraken',
cache: false,
headers:{
'Accept': 'application/vnd.twitchtv.v3+json',
'Authorization': 'OAuth ' + usercode
}
})
};
}]);

但我得到这个错误:

XMLHttpRequest cannot load https://api.twitch.tv/kraken. The request was redirected to 'http://www.twitch.tv/kraken', which is disallowed for cross-origin requests that require preflight.

我知道我需要使用 JSONP 请求,但如何设置 header ?谁能向我展示 JSONP 请求的示例以及如何像上面的示例中那样为其设置 header ?如果我无法在 JSONP 请求中设置 header ,我该如何设置请求 header ?

最佳答案

提出请求:

$http.jsonp('https://api.twitch.tv/kraken/games/top?limit=' + number + '&callback=JSON_CALLBACK')

这将返回给您 json,并且 XMLHttpRequest 不会出现问题

关于AngularJS使用$http服务进行跨域请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30229026/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com