2015-02-07 26 views
0

使用Ember和Ember-Model開發一個調用Spring/Rest/MongoDB後端的前端,這些後端都在我的本地機器上運行,用於開發目的,但是我得到我的電話會出現相同的來源策略錯誤。在本地機器上開發的同源策略

我想知道這是什麼共同的工作。

這裏是我的代碼:

App = Ember.Application.create(); 

App.Router.map(function(){ 

}); 

App.IndexRoute = Ember.Route.extend({ 
    model: function(){ 
     return App.User.find(); 
    } 
}); 

App.User = Ember.Model.extend({ 
    lastName: Ember.attr() 
}); 

App.User.adapter = Ember.Adapter.create({ 
    findAll: function(klass, records) { 
     $.getJSONP("http://localhost:8080/users").then(function(data) { 
      records.load(klass, data.users); 
     }); 
    } 
}) 
+0

如果你調用$ .getJSONP(「用戶」),而不是你得到了同樣的錯誤? – bhspencer 2015-02-07 20:16:35

+0

@ .getJSONP實際上根本不工作。它不存在於Ember中(或者這是一個JQuery的東西嗎?我不知道)。這是我試圖解決這個問題。所以實際的調用是$ .getJSON。我試過這個:「/ users」,它是尋找「file:/// C:/ users」,我甚至創建了一個名爲users.json的JSON文件,然後嘗試使用:「/users.json」,但這也失敗了:( – 2015-02-08 02:05:08

回答

0

同源策略上localhost是一樣的在網絡上的其餘部分。然而,如果你打開你的web應用程序作爲一個文件(即地址以file:///開頭,其他所有uri,即使是其他文件的地址,也會有不同的來源)

要解決這個問題,在你自己的機器上,比看看http://localhost

+0

這是一個很棒的解決方案,但是,我現在正在嘗試,但是在確定Spring Boot從哪裏運行時遇到問題。我在這裏有我的html文件:「C:\ Users \ Me \ Google Drive \ workspace-sts-3.6.0.M1 \ BookingSoftware2 \ html \ index.html」,我的Spring項目位於BookingSoftware2中。那麼localhost目錄在哪裏? – 2015-02-07 21:00:26

+1

沒有本地主機目錄。 localhost是映射到您自己的計算機的「域名」。要以這種方式訪問​​您的應用程序,必須有一些服務器正在運行,並將其提供給瀏覽器。我聽說[mongoose](https://code.google.com/p/mongoose/)在Windows上提供靜態文件的好處。 – bigblind 2015-02-07 21:32:04

+0

是的,我知道這一點。這就是我提到Spring Boot的原因。使用Spring啓動webserver是tomcat,它存在於Spring創建的jar文件中。所以這意味着在部署jar之前,它不會「安裝」在我的本地機器上。這是我不明白的過程:當它部署什麼文件夾可用於託管Web服務器文件(如果有)。 – 2015-02-08 02:02:44