2016-11-16 53 views
1

我在angularjs中很新,我正在開發我的第一個應用程序。我在另一個系統中準備了一個不可觸及的後臺Restful服務,並開發了我的服務。此代碼:本地開發不可能出現錯誤:沒有'訪問控制允許來源'標題出現在所請求的資源上

var MainService = angular.module('MainService', []) 
MainService.factory('MainData', ['$http', function ($http) { 
    var urlBase = 'http://demoint:1234/rest.oms/basvc/barest'; 
    var MainData = {}; 
    MainData.getData = function() { 
     return $http.get(urlBase + '/0/usecases?generation=true&UseCase=0.0.3550d.a6000015'); 
    }; 
    console.log(MainData); 
    return MainData; 
}]); 

但後來我得到我的瀏覽器這個錯誤: 的XMLHttpRequest無法加載http://demoint:1234/rest.oms/basvc/barest/0/usecases?generation=true&UseCase=0.0.3550d.a6000015。請求的資源上沒有「Access-Control-Allow-Origin」標題。原因'http://localhost:9000'因此不允許訪問。 enter image description here

我試圖繞開的問題在這些方面,但沒有運氣:

  1. 將這個選項Chrome瀏覽器(啓動參數): - 禁用網絡安全
  2. 添加此擴展https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en
  3. 添加以下代碼配置我主要的應用程序:

    .config(['$httpProvider', function ($httpProvider) { 
         $httpProvider.defaults.useXDomain = true; 
         $httpProvider.defaults.withCredentials = true; 
         delete $httpProvider.defaults.headers.common["X-Requested-With"]; 
         $httpProvider.defaults.headers.common["Accept"] = "application/json"; 
         $httpProvider.defaults.headers.common["Content-Type"] = "application/json"; 
        } 
    ]); 
    

有關如何解決的任何想法?

enter image description here

提前感謝! Fabio

回答

1

首先,JavaScript不能授予自己訪問其他網站的權限。意味着只使用JavaScript,您無法解決此問題。您必須在後端服務器中啓用CORS。 如果您只是想在瀏覽器上運行此功能,您可以禁用Chrome中的網絡安全。爲此關閉所有鉻的實例並運行chrome.exe --disable-web-security

對於Chrome 49加檢查鏈接-Chrome 49 plus --disable-web-security

+0

瞭解,很好的解釋。但我已經做了你的建議..第一點在我的嘗試名單:-) – Micky

+0

上次它爲我工作。運行命令之前,你關閉了所有的chrome時間嗎? –

+0

不幸的是,我做了一個項目,當地所有的前端開發人員都使用該參數..我真的失去了所有這一次失望。一個我不能改變後端..所以需要修復它只有客戶端.. – Micky

相關問題