我从我控制的远程服务器获取json时遇到问题.我有2个Web应用程序,一个服务数据并在端口3311上运行,另一个请求数据,正在端口5000上运行.
使用jquery以下工作:
$.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); });
});
Run Code Online (Sandbox Code Playgroud)
当使用angular尝试相同的get请求时
$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); });
Run Code Online (Sandbox Code Playgroud)
我收到错误
Origin http://localhost:5000 is not allowed by Access-Control-Allow-Origin.
Run Code Online (Sandbox Code Playgroud)
控制台日志显示OPTIONS请求返回HTTP200后发生的错误
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) …Run Code Online (Sandbox Code Playgroud)