Tôi có một ứng dụng angular.js và tôi cần thực hiện yêu cầu CORS.Cách bật yêu cầu cors với angular.js-resource
Tôi muốn xác định các dịch vụ còn lại của mình "góc cạnh" bằng tài nguyên góc, được mô tả tại đây: http://docs.angularjs.org/tutorial/step_11.
Nhưng tôi chưa tìm được cách để làm việc này. Trên google tôi đã tìm thấy mã mẫu sau: http://jsfiddle.net/ricardohbin/E3YEt/, nhưng điều này dường như không hoạt động với tài nguyên góc.
đây là app.js tôi
'use strict';
angular.module('corsClientAngularApp', ['helloServices'])
.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl'
})
.otherwise({
redirectTo: '/'
});
});
đây là services.js của tôi với các dịch vụ còn lại
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}
});
});
Đây là main.js của tôi với bộ điều khiển bằng cách sử dụng $ http, tác phẩm này !:
'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;
});
});
Đây là phiên bản khác của main.js sử dụng tài nguyên góc cạnh. Này không làm việc :(
'use strict';
angular.module('corsClientAngularApp')
.controller('MainCtrl', function ($scope, $http, Hello) {
$http.defaults.useXDomain = true;
$scope.hello = Hello.query({name:'stijn'});
});
Đây là là những tiêu đề từ yêu cầu làm việc (từ DevTools chrome):
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, origin, 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
Và đây là những tiêu đề từ yêu cầu không làm việc:
Request URL:http://localhost/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
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)
Dường như url yêu cầu không đúng khi sử dụng tài nguyên góc. Tuy nhiên, tại sao?
Cảm ơn S!
'KHÔNG hoạt động' không phải là định nghĩa của sự cố. Kiểm tra yêu cầu trong bảng điều khiển trình duyệt và cung cấp thêm chi tiết – charlietfl
Tôi đã thêm tiêu đề yêu cầu – cremersstijn