我正在撰写一个非常常见的主题,但我绝望,浪费了两天时间来努力完成这项工作。
我在Chrome上,尝试制作我的第一个登录/注册应用程序,在将数据发送到后端时,我收到以下错误:
XMLHttpRequest无法加载http://192.168.1.133:8100/api/login。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许原点“http://localhost:8100”访问。响应的HTTP状态代码为500。
我正在从AngularJS发出一个POST请求,如下所示:
$scope.data = "UserName"; // for example
$scope.register = function() {
var withAjax = $http.post('http://192.168.1.133/api/register', $scope.data);
withAjax
.success(function(answer){
console.log(answer.message);
})
.error(function(answer) {
console.log("error");
});
}
])
Laravel API后端很简单,只需返回'正确'。
public function login (Request $request) {
$inputArray = $request->all();
return response()->json(["message" => "Login: All Correct"]);
}
在我的前端应用程序中,我提供了所有类型的连接:
<allow-navigation href="http://*/*" />
<allow-navigation href="*" />
<access origin="*"/>
在PHP中,我尝试了所有。已禁用API的CSFR令牌,并正确安装了“ barryvdh / laravel-cors ”并配置了如下的cors文件:
return [
'supportsCredentials' => false,
'allowedOrigins' => ['*'],
'allowedHeaders' => ['*'],
'allowedMethods' => ['*'], // ex: ['GET', 'POST', 'PUT', 'DELETE']
'exposedHeaders' => [],
];
当我可以制作,来回发送数据时,我会关心保护。现在我决定打开“全部”以使其变得简单明了。
我为此疯狂,只是试图解决这个问题而失去了两天。 任何线索都会有所帮助。
谢谢!