[英]No 'Access-Control-Allow-Origin' header is present. But the header is present
[英]No 'Access-Control-Allow-Origin' header is present
我正在使用angular.js使用Cordova為移動設備制作ReSTful應用。 對於服務器端,我正在使用苗條的Framework.all根據本教程:( http://www.angularcode.com/user-authentication-using-angularjs-php-mysql/ )
但是,當我將api文件夾上傳到服務器時,會發生錯誤:所請求的資源上沒有'Access-Control-Allow-Origin'標頭。 因此,不允許訪問源“本地主機”。 響應的HTTP狀態碼為404。
我已閱讀有關添加“ Access-Control-Allow-Origin”的信息,並根據此鏈接實施了該信息: http : //help.slimframework.com/discussions/problems/810-no-subject
$app->get('/session', function() {
**$response->header('Access-Control-Allow-Origin', '*');**
$db = new DbHandler();
$session = $db->getSession();
$response["uid"] = $session['uid'];
$response["email"] = $session['email'];
$response["name"] = $session['name'];
echoResponse(200, $session);
});
也嘗試過
$app->get('/session', function() {
**$session->header('Access-Control-Allow-Origin', '*');**
$db = new DbHandler();
$session = $db->getSession();
$response["uid"] = $session['uid'];
$response["email"] = $session['email'];
$response["name"] = $session['name'];
echoResponse(200, $session);
});
我仍然收到相同的錯誤。
->最后一行也是正確的嗎? echoResponse(200, $session);
先感謝您 :)
我在Firefox和chrome上使用了相同的文件,而chrome能夠訪問服務器上的文件。 另外,cordova應用程序之前已經訪問了我服務器上的一個JSON文件,但現在無法正常工作。 調用代碼完全相同,即
.controller('ListController', ['$scope', '$http', function($scope, $http) {
$http.get('js/data.json').success(function(product_data) {
$scope.artists = product_data;
});
}])
使用--disable-web-security
標志打開Chrome。 這樣可以防止這種情況出現,並允許您在桌面上進行開發。
當Cordova / PhoneGap處於應用程序形式時,基本上可以為您完成此操作。 您可能需要四處看看,以查看如何使用標志打開它,具體取決於您所使用的操作系統。
另外, 請勿在啟用了標志的情況下繼續將瀏覽器用於正常活動 。 如果可能的話,還可以使用CLI打開新的用戶配置文件,這樣它就不會影響您現有的配置文件,也不會對您開放任何安全漏洞。
某些Web瀏覽器不允許來自localhost的CORS(或localhost的任何別名,如127.0.0.1)。 解決方案是使用非本地url訪問它。
可能有效的網址之一就是您的IP地址。
如果您不想使用您的IP地址(可能是因為它是每次連接時由路由器隨機分配的),則可以通過修改/etc/hosts
(或Windows\\System32\\Drivers\\etc\\hosts
)來為您分配一個偽造的域。視窗)。
例如,將其添加到/etc/hosts
:
127.0.1.1 thismachine
然后,您可以通過在Web瀏覽器中鍵入http://thismachine
來訪問Web服務器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.