Этот вопрос как бы связан с этим вопросом, который я написал.
Разрешить доступ к моему API через AJAX
Мне удается исправить ошибку CORS, я думаю, добавив, следуя инструкциям на http://enable-cors.org/server_apache.html. Проблема не появляется сейчас.
Но на этот раз я получаю ошибку 405, на которую я не уверен, почему так.
клиент
var appOrigin = 'http://event.chart.local/api/vendor/events.json';
app.factory('chartListLoadService',['$http',function($http){
return {
fetchList: function(city){
var data = {city:city};
$http({
method:'post',
url:appOrigin,
data:data
}).success(function(data){
alert(data);
});
},
testFunction:function(){
alert('testing');
}
};
}]);
сервер
public function post_events()
{
$city = Input::post('city','all');
$c = Model_chart::format_chart($city);
return $this->response($c);
}
Заголовок Информация
Remote Address:127.0.0.1:80
Request URL:http://event.chart.local/api/vendor/events.json
Request Method:OPTIONS
Status Code:405 Method Not Allowed
Request Headersview parsed
OPTIONS /api/vendor/events.json HTTP/1.1
Host: event.chart.local
Connection: keep-alive
Access-Control-Request-Method: POST
Origin: http://app.event.chart
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36
Access-Control-Request-Headers: accept, content-type
Accept: */*
Referer: http://app.event.chart/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Response Headersview parsed
HTTP/1.1 405 Method Not Allowed
Date: Fri, 26 Sep 2014 02:48:33 GMT
Server: Apache/2.4.9 (Win32) OpenSSL/1.0.1g PHP/5.5.11
X-Powered-By: PHP/5.5.11
Access-Control-Allow-Origin: http://app.event.chart
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Headers: Content-Type
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
Со стороны FuelPHP:
Предполагая, что вы используете Controller_Rest для создания этой функциональности:
Это возвращает статус 405, если он не может сопоставить запрос с каким-либо методом в контроллере.
Опять, при условии, что со ссылкой, как Http: //event.chart.local/api/vendor/events.json, ваш контроллер — Controller_Api_Vendor (или вариант пространства имен), а метод — «события»?
В этом случае он будет искать options_events () или action_events (). Если один из них существует и может быть вызван, то 405 не генерируется топливом.
Других решений пока нет …