我正在angularJs
中创建页面,当我向API发送请求时,它会生成错误:
我的代码是:
<!DOCTYPE html>
<html ng-app="AppIndex">
<head>
<meta charset="utf-8">
<title>Hola mundo</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.9/angular.min.js"></script>
<script src="ControllerIndex.js"></script>
</head>
<body ng-controller="ControllerIn">
{{"Hola Mundo" + nombre}}
<button ng-click="metodos()">Enviar</button>
<ul>
<li ng-repeat="response in posts">
<h2>holaaaaa</h2>
<p>{{response.title}}</p>
<p>{{response.body}}</p>
</li>
</ul>
</body>
</html>
和javaScript
angular.module("AppIndex",[])
.controller("ControllerIn", function($scope, $http){
$scope.nombre = "Juan";
$scope.newPost = {};
$scope.responses = [];
$scope.metodos = function(){
$http({
method: 'POST',
url: 'http://localhost:900/Servicios/forgotPassword',
Headers: {"Access-Control-Allow-Origin": "http://127.0.0.1", "Access-Control-Allow-Methods": "POST", "Content-Type" : "application/json"},
data: {"user" : "admin1"}
}).then(function (response){
console.log(response);
$scope.posts = response;
},function (error){
console.log(error);
});
}
})
错误消息是:
POSThttp://localhost:900/Servicios/forgotPassword403{数据:“无效的CORS请求”,状态:403,配置:{…},状态文本:“”,标头:ƒ,...
我正在使用AngularJS 1.7.9
Access-Control-Allow-Origin
是响应头;如果我没记错的话,这是客户端代码。您需要从服务器端发送Access-Control-Allow-*
标头,以响应客户端请求。
您只需要启用来自服务器端的CORS请求。您正在使用哪个后端?
如果您使用express.JS作为后端,则需要将cors属性作为中间件传递。
express.JS中的操作方法
方法1
创建文件cors.js。然后复制此代码并粘贴到您的cors.js文件中
module.exports = function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header('Access-Control-Allow-Methods', 'DELETE, PUT, GET, POST');
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
}
之后,您需要在server.js文件中需要此cores.js文件,并将其作为中间件传递例如:
app.use(require('./cors'));
方法2
您可以简单地使用npm i cors
安装cors并在您的服务器文件中要求。
注意:这是您在express.js中所做的。但是,如果您使用其他后端技术,然后类似地,您可以做类似的事情,使用express.JS的示例