gpt4 book ai didi

angularjs - 带有 angular.js $resource 和 ServiceStack 服务的 CORS

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

我有一个 servicestack REST 服务和一个 angular.js 客户端。 Web 托管在另一个端口上,然后是 RESTService。

使用 $http 检索数据有效,但使用 $resource 无效。

在 REST 服务中,我设置了以下全局 header :

 GlobalResponseHeaders =
{
{ "Access-Control-Allow-Origin", "*" },
{ "Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS" },
{ "Access-Control-Allow-Headers", "X-Requested-With"}
}

现在在 angular.js 中,我可以成功读取使用 $http 的方法,例如
$http({
method:'get',
url:address,
requesttype:'application/json'
}).success(function(data) {
$scope.ServiceStatus = data;
});

但是使用 $ressource 读取相同的地址不起作用
我的工厂代码是:
myApp.factory('qaServiceStatus', function($resource){
return $resource('http://localhost:1338/api/status', {}, {
query: {method:'GET', headers: {'Content-Type': 'application/json'}, params:{}}

});
});

我在 Controller 中以这种方式使用它
$scope.RESTStatus = qaServiceStatus.get({});

我得到的错误是:
产地 http://localhost:7000 Access-Control-Allow-Origin 不允许。

XMLHttpRequest 无法加载 http://localhost/api/status .产地 http://localhost:7000 Access-Control-Allow-Origin 不允许。

我究竟做错了什么?

我还尝试将允许的原点更改为确切的地址,但这无济于事

最佳答案

这是响应您的客户端的 API,不允许您的客户端源发出 CORS 请求。
我不知道您使用哪种后端,但您需要查看您的 Access-Control-Allow-Origin 设置才能使其正常工作。

更新:

错误或功能,您必须询问 angularjs 团队。 Atm 他们将 :port 解释为变量而不是端口。解决方案是逃避:

例子:

$resource('http://localhost:1338\:1338/api/status', {}, {.....

关于angularjs - 带有 angular.js $resource 和 ServiceStack 服务的 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18758918/

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