2015-08-29 32 views
0

我有一個應用程序運行在tomcat 8服務器上,域 和Angular web應用程序在同一個域上。 Web應用程序使用tomcat應用程序,但是如果沒有在web.xml中啓用CORS過濾,webapp會抱怨跨源數據共享,即使它們都在相同的IP上。爲什麼我需要在我的tomcat應用程序上啓用CORS

這裏是如何使我的js請求我的Tomcat應用

function getResources($http, url){ 
     return $http({ 
      method: 'GET', 
      url: url, 
      headers: {'Accept': 'application/json'} 
     }).then(function (result) { 
      return result.data; 
     }); 
}; 

我也試過用:dataType: 'jsonp'

錯誤的樣子:

XMLHttpRequest cannot load http://localhost:8080/APP/requestStuff.No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8000' is therefore not allowed access. 

這是奇怪的對我來說,因爲如果起源與我連接的地方相同,它不應該是跨越原點。

回答

0

跨計劃請求策略在計劃(例如http vs https),域或端口隨時變化時適用。所以在你的情況下,因爲端口不同,你將需要CORS。

0

嘗試給它一個相對的網址,而不是一個規範的網址。

這些網站還需要共享相同的端口。 https://en.wikipedia.org/wiki/Same_origin_policy#Origin_determination_rules

此外,請確保您獲得正確的URL。例如,如果您真的將錯誤引用爲「Origin'the_IP_of_web_app'」,則它會因爲不是IP地址而失敗。

+0

我不想透露確切的IP,但在本地主機上運行遇到同樣的問題,我改變了我的問題。 – Mehran

+0

在您的新問題中,您正在使用不同的端口。那會失敗。 – Tom

+0

我正在8000端口運行python simpleHTTPserver,網頁肯定會出現。只是請求導致錯誤。 – Mehran

相關問題