【发布时间】:2016-04-22 03:41:20
【问题描述】:
我无法使用 http.get 从某些网站获取响应。我从 Firebase 所做的每一次获取似乎都有效,但许多其他网站却没有,尽管请求在我的浏览器或 curl 中工作正常。我有两个提供完全相同数据的 URL,一个来自 Firebase,另一个来自 Cloud9 项目。 Firebase 可以工作,而 c9 不行。
当它不起作用时,我得到以下响应:
{"data":null,"status":-1,"config":{"method":"GET","transformRequest":[null],"transformResponse":[null],"url":"http://dl-celeb-dp-x2jroy.c9users.io:8081/getScoreboard","headers":{"Accept":"application/json, text/plain, */*"}},"statusText":""}
我已经尝试过 HTTP 和 HTTPS,但不管用哪种方式,我都得到了相同的响应。
我有一个小提琴要演示: https://jsfiddle.net/9d7mysns/
HTML:
<h1>{{result}}</h1>
<p>{{content}}</p>
</div>
Javascript:
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $http) {
$http.get("https://blazing-torch-1276.firebaseio.com/getScoreboard.json") //Working
//$http.get("https://dl-celeb-dp-x2jroy.c9users.io:8081/getScoreboard") //Not Working
.then(function(response) {
$scope.result = "Success";
$scope.content = response;
}, function(response) {
$scope.result = "Error";
$scope.content = response;
});
});
请帮忙, 谢谢!
【问题讨论】:
-
似乎第一个链接启用了 CORS。是否因为另一个没有启用 CORS .. 您需要在第二个链接的服务器端无法使用 CORS
-
跨域请求 (CORS) - 启用它
标签: javascript angularjs