2015-04-01 62 views
0

後,我建立與達特編輯器中的Web應用程序,並在Dartium測試時,一切是偉大的工作。我想在託管站點上測試它,所以我從工具菜單中運行了Pub Build。它看起來像創建了build文件夾並將所有內容都放在那裏,包括我的.dart文件中的.js文件。當我運行通常所做的.html文件時,什麼都沒有發生。我查看了源代碼,它仍然指向.dart文件,因此我將其更改爲.js文件。仍然沒有看到預期的結果。好像沒有什麼改變建築飛鏢應用

這是我第一次嘗試運行達特VM之外的鏢應用。我在某個地方錯過了一步嗎?沒有真正找到任何這方面的文件。

+0

當你從DartEditor啓動應用程序,然後將網址複製到瀏覽器或Firefox,會發生什麼? – 2015-04-01 04:25:32

+0

當我在Chrome中運行它時,幾乎所有的東西都能正常工作。在頁面加載時發生更改的DOM正在運行。事件偵聽器正在工作。唯一不起作用的是當我嘗試爲我的項目外部的站點使用GetString方法時返回錯誤。 – DuckyDisciple 2015-04-02 03:26:50

+0

從構建目錄運行它時,瀏覽器控制檯中是否有任何錯誤? – 2015-04-02 04:12:00

回答

0

如果試圖從另一臺服務器比你的頁面是由加載一個獲取資源,這臺服務器需要返回CORS標頭,否則您的瀏覽器拒絕抓取形成這個其他服務器。 這取決於您的服務器如何配置或添加。

見例如
- How do you add CORS headers in Redstone interceptor?
- CORS with Dart, how do I get it to work?

+0

你描述的問題很有意義,因爲我試圖從一個不同的站點上的API中提取數據,但我不確定我是否理解這個解決方案。它看起來像客戶端向服務器發送請求,服務器添加標頭,然後在響應返回給客戶端之前,該請求繼續到外部網站? – DuckyDisciple 2015-04-03 15:57:39

+0

老實說,我不明白爲什麼/如何提高安全性,但是如果JavaScript從不同於網頁原點的站點獲取資源,服務器需要允許它。它響應由瀏覽器緩存的CORS頭文件。下次瀏覽器甚至不嘗試發送請求時,CORS頭文件不允許頁面起始URL。如果您發佈了發佈請求,則會在實際發佈請求(預檢請求)之前發出額外請求,以檢查CORS標頭。如果他們不允許你的頁面來源,那麼發佈請求本身根本就不是。 CORS還有更多。 – 2015-04-03 16:06:49

+0

...但不是我的專業領域。 – 2015-04-03 16:06:59