내가 제어하는 원격 서버에서 json을 가져 오는 데 문제가 있습니다. 나는 하나가 다음 작품 jQuery를 사용하여 포트 5000
에서 실행되는 데이터를 제공하는 포트 (3311), 다른, 요청 데이터에 실행이 웹 응용 프로그램을 가지고 :
$.ajax({
url: "http://localhost:3311/get-data",
type: 'GET',
dataType: 'json',
beforeSend: function(xhr) {
xhr.setRequestHeader("x-some-header", "some-value");
}
})
.done(function(data) {
$rootScope.$apply(function() {d.resolve(data); });
})
.fail(function(data) {
$rootScope.$apply(function() {d.reject(data); });
});
같은 얻을 요청을 시도 각
$http
.get("http://localhost:3311/get-data", { headers: {"x-some-header": "some-value"} })
.success(function(data) { d.resolve(data);})
.error(function(data) { d.reject(data); });
와 나는 오류
Origin http://localhost:5000 is not allowed by Access-Control-Allow-Origin.
콘솔 리터를받을 OG는 OPTIONS 요청 이후에 발생한 오류가
OPTIONS http://localhost:3311//get-data 200 (OK) angular.min.js:99
(anonymous function) angular.min.js:99
l angular.min.js:95
m angular.min.js:94
(anonymous function) app.js:78
b.extend.each jquery-1.9.1.min.js:3
b.fn.b.each jquery-1.9.1.min.js:3
(anonymous function) app.js:76
d angular.min.js:28
instantiate angular.min.js:28
(anonymous function) angular.min.js:52
updateView angular-ui-states.js:892
e.$broadcast angular.min.js:90
transition angular-ui-states.js:324
h angular.min.js:77
(anonymous function) angular.min.js:78
e.$eval angular.min.js:88
e.$digest angular.min.js:86
e.$apply angular.min.js:88
e angular.min.js:94
o angular.min.js:98
s.onreadystatechange angular.min.js:99
와 헤더가 OPTIONS 요청에서 반환이 요청 헤더를 포함하는 각도의 기본 동작 아마 때문이다
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/plain
Server: Microsoft-IIS/8.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Headers: Content-Type, Accept, X-Requested-With, x-some-header
X-AspNet-Version: 4.0.30319
X-SourceFiles: =?UTF-8?B?....
X-Powered-By: ASP.NET
Date: Tue, 21 May 2013 01:52:37 GMT
Content-Length: 0
'$ http.defaults.useXDomain = TRUE'ContainerResponseFilter를 구현? – jkoreska
$ .ajax를 호출하기 전에 jquery에 대한 구성을 제공하지 않았습니다. '$ http.defaults.useXDomain = true'를 추가해도 아무런 변화가 없었습니다. – Jason