相关疑难解决方法(0)

Access-Control-Allow-Origin不允许使用$ http.get,但$ .ajax是

我从我控制的远程服务器获取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)

ajax cors angularjs

44
推荐指数
1
解决办法
9万
查看次数

标签 统计

ajax ×1

angularjs ×1

cors ×1