gpt4 book ai didi

angularjs - 在 AngularJS 中访问 JSONP 请求的真实 URL

转载 作者:行者123 更新时间:2023-12-05 08:00:00 25 4
gpt4 key购买 nike

这是使用 $http 的 JSONP 函数进行 JSONP 调用的基本设置

var authenticatedUrl = authenticateUrl("http://example.com/getStuff&callback=JSON_CALLBACK");
return $http.jsonp(authenticatedUrl).then(function (response) {
...
}

问题是,我的 HMAC 身份验证器正在使用 callback=JSON_CALLBACK 创建基于 url 的散列,然后在 angular 发出实际请求时,URL 更改为具有 angular。 callbacks._0 作为回调参数,这使我的身份验证哈希无效。

如何访问将用于此 JSONP 请求的真实 url?

根据我的研究,拦截器似乎是解决此问题的方法,但我似乎无法找到具有 angular.callbacks._0 回调的 URL 的对象。

最佳答案

如果我理解正确,你使用的是类似 Hawk - Single URI Authentication 的东西;这是您获得的 token ,您必须将其附加到 url,并且该 token 对那个确切的 url 有效。

你遇到的问题,本身不是 Angular 问题,而是每个 jsonp 框架应该工作的方式。

我会建议 fork JSONP添加此行为或手动执行 JSONP。

var i = 0;
function call_endpoint(callback) {
i++;
var url = "http://example.com/getStuff&callback=callback_" + i;

//append the token here, or call your endpoints to fetch the endpoint.

window["callback_" + i] = function (data) {
delete window["callback_" + i];
callback(data);
};

script = document.createElement('script');
script.src = url;

var target = document.getElementsByTagName('script')[0] || document.head;
target.parentNode.insertBefore(script, target);
}

关于angularjs - 在 AngularJS 中访问 JSONP 请求的真实 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19666933/

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