2015-05-01 51 views
0

我已經安裝了laravel homestead,並且它工作正常我能夠與後端進行通信並獲得使用API​​的響應。現在我也安裝了angularjs,它似乎也可以工作,但不起作用的是將POST或GET從Angular應用程序的laravel API作爲前端。我收到以下錯誤在Firefox中檢查網絡:Laravel和angularjs獲得405方法不允許錯誤

405 Method Not Allowed 
request headers 
Host: demo.app:8000 
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:37.0) Gecko/20100101 Firefox/37.0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-US,en;q=0.5 
Accept-Encoding: gzip, deflate 
Origin: http://frontend.app:8000 
Access-Control-Request-Method: POST 
Access-Control-Request-Headers: content-type 
Connection: keep-alive 
Pragma: no-cache 
Cache-Control: no-cache 

Response Header 
Cache-Control: no-cache 
Connection: keep-alive 
Content-Type: text/html; charset=UTF-8 
Date: Fri, 01 May 2015 02:28:25 GMT 
Server: nginx/1.6.2 
Set-Cookie: laravel_session= 
Transfer-Encoding: chunked 

,並在控制檯日誌:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://demo.app:8000/myUrl This can be fixed by moving the resource to the same domain or enabling CORS. 

我真的不知道他們爲什麼不溝通我跟所有的說明正確再加上他們是獨立工作(Laravel API和Angularjs for front)。任何的想法和幫助將不勝感激

回答

2

您需要在您的/app/filters.php

App::before(function ($request) { 
    header("Access-Control-Allow-Origin: *"); 
    header('Access-Control-Allow-Credentials: true'); 
    header('Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE'); 
}); 
+0

DevManny添加/替換這些行,我加了你的變化,但它仍然沒有工作。 – user1518071

+0

你可以發佈你的角度和laravel代碼? – DevManny

+0

DevManny,這是一個有很多文件的大項目;最近我剛剛改變了環境,把它移到了不同​​的網絡上,當問題發生時,但當我在舊網絡上時,一切正常。我不知道你是要求我在這裏發佈整個項目,還是隻需要相關的代碼。但無論如何,我包括幾個我認爲相關的代碼作爲答案: – user1518071