我有一个angular.js应用程序,我需要做CORS请求.
我想使用角度资源定义我的休息服务“角度”,如下所述:http://docs.angularjs.org/tutorial/step_11.
但是我没有找到一种办法让这个工作.
在谷歌我找到以下示例代码:http://jsfiddle.net/ricardohbin/E3YEt/,但这似乎不适用于角度资源.
这是我的app.js
'use strict'; angular.module('corsClientAngularApp',['helloServices']) .config(function ($routeProvider) { $routeProvider .when('/',{ templateUrl: 'views/main.html',controller: 'MainCtrl' }) .otherwise({ redirectTo: '/' }); });
这是我的services.js与其余的服务
angular.module('helloServices',['ngResource']). factory('Hello',function($resource){ return $resource('http://localhost:8080/cors-server/hello/:name',{},{ query: {method:'GET',params:{name:'name'},isArray:false} }); });
这是我的main.js与控制器使用$http,这个工程!
'use strict'; angular.module('corsClientAngularApp') .controller('MainCtrl',function ($scope,$http,Hello) { $http.defaults.useXDomain = true; $http.get('http://localhost:8080/cors-server/hello/stijn') .success(function(data) { $scope.hello = data; }); });
这是我使用角度资源的main.js的另一个版本.这不工作:(
'use strict'; angular.module('corsClientAngularApp') .controller('MainCtrl',Hello) { $http.defaults.useXDomain = true; $scope.hello = Hello.query({name:'stijn'}); });
这是工作请求中的标题(来自chrome devtools):
Request URL:http://localhost:8080/cors-server/hello/stijn Request Method:OPTIONS Status Code:200 OK Request Headers Accept:*/* Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 Accept-Encoding:gzip,deflate,sdch Accept-Language:nl-NL,nl;q=0.8,en-US;q=0.6,en;q=0.4 Access-Control-Request-Headers:accept,origin,x-requested-with Access-Control-Request-Method:GET Cache-Control:max-age=0 Connection:keep-alive Host:localhost:8080 Origin:http://localhost:9000 Referer:http://localhost:9000/ User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML,like Gecko) Chrome/26.0.1410.64 Safari/537.31 Response Headers Access-Control-Allow-Headers:accept,x-requested-with Access-Control-Allow-Methods:GET Access-Control-Allow-Origin:* Content-Length:0 Date:Thu,25 Apr 2013 10:42:34 GMT Server:Apache-Coyote/1.1
这些是NOt工作请求中的头文件:
Request URL:http://localhost/cors-server/hello/stijn Request Method:OPTIONS Status Code:200 OK Request Headers Accept:*/* Accept-Charset:ISO-8859-1,x-requested-with Access-Control-Request-Method:GET Cache-Control:max-age=0 Connection:keep-alive Host:localhost Origin:http://localhost:9000 Referer:http://localhost:9000/ User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML,like Gecko) Chrome/26.0.1410.64 Safari/537.31 Response Headers Allow:GET,HEAD,POST,OPTIONS,TRACE Connection:Keep-Alive Content-Length:0 Content-Type:text/plain Date:Thu,25 Apr 2013 10:41:12 GMT Keep-Alive:timeout=5,max=100 Server:Apache/2.2.22 (Win32)
使用角度资源时,请求url看起来是错误的.但为什么?
谢谢!
$资源的URL接受使用冒号的参数.因此,当在url中使用port时,需要转义冒号的端口.这在
$resource docs中解释
原文链接:https://www.f2er.com/angularjs/142854.html