2014-12-20 27 views
1

我正在開發一個簡單的Angular應用程序,我希望從我在Laravel創建的API獲得我的後端數據。 API正在發回數據。但是因爲我正在分別開發我的Angular應用程序,所以當我在Angular中使用服務來獲取我的資源時出現錯誤。使用barryvdh/laravel-cors軟件包在laravel中啓用CORS?

錯誤

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

所以,現在我已經安裝在Laravel包這是應該解決這個問題,但我不知道如何使用它。該包的cofig文件如下所示:

'defaults' => array(
     'supportsCredentials' => false, 
     'allowedOrigins' => array(), 
     'allowedHeaders' => array(), 
     'allowedMethods' => array(), 
     'exposedHeaders' => array(), 
     'maxAge' => 0, 
     'hosts' => array(), 
    ), 

    'paths' => array(
     'api/*' => array(
      'allowedOrigins' => array('*'), 
      'allowedHeaders' => array('*'), 
      'allowedMethods' => array('*'), 
      'maxAge' => 3600, 
     ), 
     '*' => array(
      'allowedOrigins' => array('*'), 
      'allowedHeaders' => array('Content-Type'), 
      'allowedMethods' => array('POST', 'PUT', 'GET', 'DELETE'), 
      'maxAge' => 3600, 
      'hosts' => array('api.*'), 
     ), 
    ), 

我仍然收到相同的錯誤。現在爲了讓CORS有所不同,我有什麼不同?

注:我已經安裝了WAMP。我正在同一本地服務器上開發我的Angular應用程序和Laravel API。

+1

您的API前綴爲「api /」嗎? –

回答

0

我遇到了類似於EmberJS而不是Angular的東西。 Laravel設置看起來正確,但我認爲你需要在Angular中啓用CORS支持。

從Chrome開發者教程:

對內容安全策略

不像許多其他JS MVC框架的單詞, 角V1.1.0 +不需要調整到內的工作嚴格的CSP。它 只是工作,開箱即用!

但是,如果您使用v1.0.1 和v1.1.0之間的舊版Angular,則需要讓Angular以「內容安全 」模式運行。這是由包括ngCsp指令一起ngApp完成:

<html data-ng-app data-ng-csp>

你可以找到整篇文章here

相關問題