2

我在将 HTTP 请求从 angular 5 前端应用程序发送到流明后端 restful api 时遇到问题。

好吧,我只是想注册一个用户。

这是我用于处理用户创建的流明后端代码:

public function create(Request $request)
{
    $this->validate($request, [
      'screen_name' => 'required',
      'email' => 'required',
      'password' => 'required'
    ]);

    $request['api_token'] = app('hash')->make(str_random(60));
    $request['password'] = app('hash')->make($request->password);

    $user = User::create($request->all());

    return response()->json($user, 201);

}

我已经检查了后端,它与 POSTMAN 一起工作正常。

现在在角度 5 :

registerUser(value){
var Indata={
  screen_name: value.scrname,
  email: value.email,
  password: value.password
}


return this.http.post(window.location.hostname+':1000/api/v1/users/',Indata);

}

并且这个角度请求也通过要测试的公共假 api 检查并且工作正常。

所以,首先我遇到了 CORS 问题,因为 lumen api 服务器和我的 angular 服务器在本地服务器下工作。然后我补充说:

window.location.hostname

代替 :

http://localhost

它解决了 CORS 问题,但现在我遇到了一个我不明白问题出在哪里的问题?

error: error { target: XMLHttpRequest, isTrusted: true, lengthComputable: 
false, … }
headers: Object { normalizedNames: Map, lazyUpdate: null, headers: Map }
message: "Http failure response for (unknown url): 0 Unknown Error"
name: "HttpErrorResponse"
ok: false
status: 0
statusText: "Unknown Error"
url: null

我也找到了一个关于这个问题的角度代理配置,但它没有用。

因此,任何帮助将不胜感激。谢谢。

4

1 回答 1

0

你试过:this.http.post('/api/v1/users/',Indata)

你的 src 文件夹中有 proxy.conf.json 吗?

proxy.conf.json:

{
  "/api/*": {
    "target": "http://localhost:8000",
    "secure": false,
    "logLevel": "debug"
  }
}

在“服务”下的 angular.json 中是这样的:

"serve": {
 "builder": "@angular-devkit/build-angular:dev-server",
 "options": {
   "browserTarget": "frontend:build",
   "proxyConfig": "src/proxy.conf.json"
}

你也必须在你的流明中设置一个 CorsMiddleware。

于 2020-06-05T16:22:58.997 回答