2016-12-21 1 views
2

Vue 앱에 대한 RESTfull API를 구축 중이며 사용자 인증에 문제가 있습니다. 아래 오류가 발생합니다.Vue js POST가 onclick 로그인에 실패했습니다. "프리 플라이트에 대한 응답에 유효하지 않은 HTTP 상태 코드 404가 있습니다."

XMLHttpRequest는 http://localhost:8000/oauth/token/을로드 할 수 없습니다. laravel의 목록입니다 내가받지 못했습니다 많은 방법을 시도

+--------+----------+---------------------------------------------+------+---------------------------------------------------------------------------+---------------+ 
| Domain | Method | URI           | Name | Action                 | Middleware | 
+--------+----------+---------------------------------------------+------+---------------------------------------------------------------------------+---------------+ 
|  | GET|HEAD |/           |  | Closure                 | web   | 
|  | GET|HEAD | api/oauth/authorize       |  | Laravel\Passport\Http\Controllers\[email protected]  | cors,web,auth | 
|  | DELETE | api/oauth/authorize       |  | Laravel\Passport\Http\Controllers\[email protected]  | cors,web,auth | 
|  | POST  | api/oauth/authorize       |  | Laravel\Passport\Http\Controllers\[email protected] | cors,web,auth | 
|  | GET|HEAD | api/oauth/clients       |  | Laravel\Passport\Http\Controllers\[email protected]    | cors,web,auth | 
|  | POST  | api/oauth/clients       |  | Laravel\Passport\Http\Controllers\[email protected]     | cors,web,auth | 
|  | DELETE | api/oauth/clients/{client_id}    |  | Laravel\Passport\Http\Controllers\[email protected]    | cors,web,auth | 
|  | PUT  | api/oauth/clients/{client_id}    |  | Laravel\Passport\Http\Controllers\[email protected]     | cors,web,auth | 
|  | POST  | api/oauth/personal-access-tokens   |  | Laravel\Passport\Http\Controllers\[email protected]  | cors,web,auth | 
|  | GET|HEAD | api/oauth/personal-access-tokens   |  | Laravel\Passport\Http\Controllers\[email protected] | cors,web,auth | 
|  | DELETE | api/oauth/personal-access-tokens/{token_id} |  | Laravel\Passport\Http\Controllers\[email protected] | cors,web,auth | 
|  | GET|HEAD | api/oauth/scopes       |  | Laravel\Passport\Http\Controllers\[email protected]      | cors,web,auth | 
|  | POST  | api/oauth/token        |  | Laravel\Passport\Http\Controllers\[email protected]  | cors,throttle | 
|  | POST  | api/oauth/token/refresh      |  | Laravel\Passport\Http\Controllers\[email protected]  | cors,web,auth | 
|  | GET|HEAD | api/oauth/tokens       |  | Laravel\Passport\Http\Controllers\[email protected] | cors,web,auth | 
|  | DELETE | api/oauth/tokens/{token_id}     |  | Laravel\Passport\Http\Controllers\[email protected] | cors,web,auth | 
|  | GET|HEAD | api/test         |  | Closure                 | api   | 
|  | GET|HEAD | api/user         |  | Closure                 | api,auth:api | 
+--------+----------+---------------------------------------------+------+---------------------------------------------------------------------------+---------------+ 

: 프리 플라이트에 대한 응답 유효하지 않은 HTTP 상태 코드 404

내 뷰 코드

<script> 
export default { 
    data() { 
    return { 
     email: '', 
     password: '', 
     error: '' 
    } 
    }, 
    methods: { 
    login() { 
     var data = { 
     client_id: 2, 
     client_secret: 'GWSpaP77kEIFXSG2XklctCc7AXAoWcEq4tPQbneF', 
     grant_type: 'password', 
     username: this.email, 
     password: this.password 
     } 
     this.$http.post('http://localhost:8000/oauth/token/', data).then((response) => { 
     console.log(response) 
     }, (response) => { 
     this.error = 'No response' 
     }) 
/*  this.$http.get('http://localhost:8000/api/test').then((response) => { 
     console.log(response) 
     }, (response) => { 
     this.error = 'No response' 
     }) */ 
    } 
    } 
} 
</script> 

과 경로를 가지고 이것을위한 해결책.

답변

0

VUE에서 귀하의 URL은 다음과 같습니다 this.$http.post('http://localhost:8000/oauth/token/...

하지만 당신의 루트는 /API를로 시작됩니다

this.$http.post('http://localhost:8000/api/oauth/token/...

+0

내가이 고르 오류를 받고 있어요 것을 시도 않았다 "XMLHttpRequest를로드 할 수 없습니다 http : // localhost : 8000/api/oauth/token /. 'Access-Control-Allow-Origin'헤더가 요청 된 리소스에 존재하지 않으므로 'http : // localhost : 8080'원본은 액세스 할 수 없습니다. " –

+0

백엔드에 다른 도메인을 사용하는 경우 CORS를 활성화해야합니다 (https://github.com/barryvdh/laravel-cors). 두 도메인 모두에 대해'localhost'와 같은 도메인을 사용하거나'local.dev'와 같은 경우에는 필요하지 않습니다. – Iamzozo

+0

저는 cors에 github.com/barryvdh/laravel-cors를 사용하고 있습니다. in Kernal.php –

관련 문제