2013-04-11 46 views
0

我正在AngularJS中構建一個Web應用程序,該應用程序應該可以通過CD進行分發,但是我已經使用Chrome的相同源策略觸發了一個磚牆, IE,分別爲:Chrome/IE,AngularJS和Access-Control-Allow-Origin

XMLHttpRequest cannot load file:///xxx. Origin null is not allowed by Access-Control-Allow-Origin. 

有沒有什麼辦法可以在代碼或其他方式中繞過這個?

+0

這是一個XSS問題,SO上已經有很多答案。 – Langdon 2013-04-11 15:57:00

+0

不在此範圍內。該應用將分發,其他人將在本地fs上使用它。該解決方案必須適合每個人,以便沒有人需要使用參數手動啓動瀏覽器 – Ozrix 2013-04-11 15:58:00

+1

您可以在包含打開瀏覽器的參數的CD上添加快捷方式圖標嗎? – jpmorin 2013-04-11 16:04:54

回答

1

我去解決的辦法是通過<script type="text/ng-template">指令,像這樣定義內置在index.html文件中的所有模板:

<script type="text/ng-template" id="/template.html"> 
    <h1>I'm the content</h1> 
</script> 
<ng-include src="/template.html"></ng-include> 
+1

這是一個很好的建議,並解決了我的問題,部分無法託管在與JS文件相同的域。看看這個:http://docs.angularjs.org/api/ng.directive:script – Jazzy 2013-09-23 20:03:46

1

是的,你可以通過
delete $http.defaults.headers.common['X-Requested-With'];

請求之前