2017-09-09 83 views
-2

我有一個在Spring Boot上運行的API,我想使用來自AngularJS的http調用訪問數據。但它給我的錯誤從AngularJS調用Spring-Boot API

XMLHttpRequest無法加載http://localhost:9000/transaction-service/transaction/query?id=800103209000150247301466600013。請求的資源上沒有「Access-Control-Allow-Origin」標題。因此不允許訪問原產地'http://localhost:3000'。

我知道它與標題有關,但我不知道該怎麼做。

+0

我認爲這個問題被回答過:https://stackoverflow.com/questions/20035101/no-access-control-allow-origin-header-is-present-在請求資源 –

+0

我知道那個答案..但我不知道在我的應用程序中執行它 –

回答

1

您違反了相同的來源政策限制,以在angularjs中處理此問題。您有兩個解決方案 JSON with padding(JSONP)和跨源資源共享(CORS)標頭。

我們來看一個示例JSONP請求和響應,以瞭解它在實踐中的工作原理。首先,我們需要調用JSONP請求:

$http 
    .jsonp('http://angularjs.org/greet.php?callback=JSON_CALLBACK', { 
    params:{ 
     name:'World' 
    } 
    }).success(function (data) { 
    $scope.greeting = data; 
    }); 

或者設置適當的CORS標頭以允許跨域資源共享。如果你使用Apache:

把下列your .htaccess file

Header set Access-Control-Allow-Origin "*" 

如果您沒有訪問配置Apache,你仍然可以從PHP腳本發送的報頭。這是增加的情況下,following to your PHP scripts

<?php 
header("Access-Control-Allow-Origin: *");