2014-09-26 4 views
0

Этот вопрос связан с этим вопросом, который я разместил.

Allow my API to be access via AJAX

мне удалось исправить ошибку CORS, я думаю, добавив, следуя инструкциям на http://enable-cors.org/server_apache.html. Теперь проблема не появляется.

Но на этот раз я получаю ошибку 405, о которой я не знаю, почему так.

Client

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 
+0

Ваш сервер разрешает запросы 'OPTIONS'? Попробуйте добавить ответы «Access-Control-Allow-Methods: POST, GET, OPTIONS». – akonsu

+0

Да. Как видно из информации заголовка выше. @akonsu –

+0

Вы уверены, что это 'events.json'. Как отправить сообщение в json-файл? Вы имели в виду 'get' или api что-то еще? – PSL

ответ

0

Со стороны FuelPHP:

Предполагая, что вы используете Controller_Rest создать этот functi onality:

Это возвращает статус 405, если он не может соответствовать запросу любому методу в контроллере.

Опять же, предполагая с помощью ссылки, как http://event.chart.local/api/vendor/events.json, ваш контроллер Controller_Api_Vendor (или вариант пространства имен), а метод - «события»?

В этом случае он будет искать либо options_events(), либо action_events(). Если один из них существует и является вызываемым, 405 не генерируется топливом.

+0

Ссылка работает с обычным запросом на завивки. Там он использует Controller_Rest, и он находится на правильном методе, как указано в имени функции post_event. –

+0

Тогда я могу только предположить, что ваш веб-сервер не настроен для приема этих запросов – WanWizard

Смежные вопросы