2015-09-04 58 views
2

我建立一個應用程序,並使用下面的測試代碼來測試角度http.Post()CORS預檢通道沒有成功 - 客戶端 - 服務器

但是我收到一個奇怪的錯誤,我的預檢沒有成功。

客戶端代碼如下

<!DOCTYPE html> 
<html> 
<script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> 
<body> 

<div ng-app="myApp" ng-controller="customersCtrl"> 

<ul> 
    {{ names }} 
</ul> 

</div> 

<script> 
var app = angular.module('myApp', []); 


app.controller('customersCtrl', function($scope, $http) { 
    $http.post("http://ec2-52-3-54-45.compute-1.amazonaws.com/api/user/dogs",{id:'hello word!'}) 
    .success(function (response) { 
    $scope.names = response}); 
}); 
</script> 

</body> 
</html> 

在另一端的.htaccess文件低於

Header set Access-Control-Allow-Methods "POST" 
    Header set Access-Control-Allow-Origin "*" 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php [QSA,L] 

,哪些應該處理這個PHP是

<?php 
header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept'); 
header(‘Access-Control-Allow-Headers: Authorization, Content-Type’); 
header("Access-Control-Allow-Origin: *"); 

我我不知道爲什麼我得到這個錯誤或者我做錯了什麼。任何幫助或見解都非常感謝。

回答

3

這htaccess的代碼應工作:

Header always set Access-Control-Allow-Origin "*" 
Header always set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Access-Control-Allow-Origin" 
Header always set Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS" 

Angularjs進行POST請求時,它使一個OPTIONS請求

+0

似乎已經創建了一個新的錯誤 「‘訪問控制允許來源’確實之前不匹配 '*, *')。」 –

+0

我通常不會在.htaccess中設置頭文件,在我的php代碼中:'header('Access-Control-Allow-Origin:*'); header('Access-Control-Allow-Methods:POST,GET,PUT,DELETE,OPTIONS');頭('Access-Control-Allow-Headers:X-Requested-With,content-type,X-Token,x-token');' –

+0

也[這裏](http://stackoverflow.com/a/9866124/ 151689)你有一個自定義CORS請求的功能 –

相關問題