我收到了这个错误: 无法加载https://api.forecast.io/forecast/4a04d1c42fd9d32c97a2c291a32d5e2d/47.7510741,-120.7401385:没有'访问控制 - 允许 - 来源'标头出现在请求的资源上。起源' http://localhost:10001'因此不允许访问。 当我尝试使用$ http.get方法从此特定URL获取数据时。
app.js
var myApp = angular.module(" myApp",[]);
myApp.controller(' myController',[' $ scope',' $ http',($ scope,$ http)=> {
$scope.getWeather = () => {
var geocodeUrl = `https://maps.googleapis.com/maps/api/geocode/json?address=${$scope.location}`
$http.get(geocodeUrl)
.then((response) => {
if (response.data.status === 'ZERO_RESULTS') {
throw new Error('Unable to find that address.');
}
var lat = response.data.results[0].geometry.location.lat;
var lng = response.data.results[0].geometry.location.lng;
var weatherUrl = `https://api.forecast.io/forecast/4a04d1c42fd9d32c97a2c291a32d5e2d/${lat},${lng}`;
$scope.location = response.data.results[0].formatted_address;
console.log(response.data.results[0].formatted_address);
return $http.get(weatherUrl);
}).then((response) => {
var temperature = response.data.currently.temperature;
var apparentTemperature = response.data.currently.apparentTemperature;
console.log(`It's currently ${temperature}. It feels like ${apparentTemperature}.`);
}).catch((e) => {
if (e.code === 'ENOTFOUND') {
console.log('Unable to connect to API servers.');
} else {
console.log(e.message);
}
});
};
避免访问控制错误的最简单方法是什么? TY:)
答案 0 :(得分:0)
将此HTTP标头添加到通过localhost:10001
监听的Web服务器提供的所有页面Access-Control-Allow-Origin: *
具体说明取决于您使用的服务器软件。