我已經在過去類似的問題,更確切地說,一個CORS問題。 你可以閱讀更多關於跨域資源共享(CORS):
在幾句話,CORS當你有沒有發生設置訪問Web服務上的特定文件或數據的權限,在您的情況下,請在您的Apache2服務上訪問。 所以,當您嘗試訪問它們,它只是告訴你:「響應是HTTP狀態401,訪問被拒絕」
爲了解決這個問題,換句話說,允許訪問你的資源,你可以做兩件事情:
- 解決您的Apache2 config文件
- 您AngularJS控制器
我總是去了第一個選項,固定我的Apache2設置的權限。配置文件。 您可以在Apache2文件夾的某些文件夾中找到您的Apache2.conf文件。 只需登錄it's documentation即可。
現在我要告訴你我是如何解決這個問題的。簡而言之,我的Apache2服務器上有一些Jsons,我需要將它們提取到我的AngularJS控制器上,以便在我的Views中顯示一些數據。
我有這樣的事情:
myController.js
myApp.controller("myController", ["$scope","$http",function($scope, $http){
var controller = this;
$http.get('http://localhost/main.json').success(function(dataForViews){
controller.data = dataForViews;
})
}]);
在我HTML視圖我只是請求的數據與語法,如:
<p> {{myController.dataForViews.Name}} </p>
現在,爲了允許訪問,我把這段代碼放在我的Apache2的.config:
<VirtualHost *:80>
ServerAdmin [email protected]
#Giving permissions
Header set Access-Control-Allow-Origin "*"
############################ Main Page ###########################
Alias /main.json /var/www/html/myApp/data/mainPages/mainJSON.json
#When localhost/myApp, you get the application that runs on localhost:9000
#with its jsons
<Location /myApp>
ProxyPass http://localhost:9000/
ProxyPassReverse http://localhost:9000/
</Location>
#Same thing for scripts, css, etc, like:
<Location /scripts>
ProxyPass http://localhost:9000/scripts/
ProxyPassReverse http://localhost:9000/scripts/
</Location>
</VirtualHost>
我能夠允許訪問我的資源臥像這樣我的Apache2服務器上。 現在,你可以解決像我一樣,或者,如果你得到一些錯誤,你可能需要看Apache2 Documentation
如果你要那麼在AngularJS的方式解決它,看看:
我希望我已經幫助。
您使用哪種外部服務?我的意思是像Apache一樣。 – AndreaM16
是啊阿帕奇服務器 –
你把它整理出來了嗎? – AndreaM16