Я знаю, что таких вопросов много, но я не видел, что исправил свою проблему. Я уже использовал по крайней мере 3 микрокарта. Все они не в состоянии при выполнении простой POST, который должен возвращать данные обратно:AngularJS POST Fails: ответ на предполетный период имеет неверный код состояния HTTP 404
angularJS клиент:
var app = angular.module('client', []);
app.config(function ($httpProvider) {
//uncommenting the following line makes GET requests fail as well
//$httpProvider.defaults.headers.common['Access-Control-Allow-Headers'] = '*';
delete $httpProvider.defaults.headers.common['X-Requested-With'];
});
app.controller('MainCtrl', function($scope, $http) {
var baseUrl = 'http://localhost:8080/server.php'
$scope.response = 'Response goes here';
$scope.sendRequest = function() {
$http({
method: 'GET',
url: baseUrl + '/get'
}).then(function successCallback(response) {
$scope.response = response.data.response;
}, function errorCallback(response) { });
};
$scope.sendPost = function() {
$http.post(baseUrl + '/post', {post: 'data from client', withCredentials: true })
.success(function(data, status, headers, config) {
console.log(status);
})
.error(function(data, status, headers, config) {
console.log('FAILED');
});
}
});
SlimPHP Сервер:
<?php
require 'vendor/autoload.php';
$app = new \Slim\Slim();
$app->response()->headers->set('Access-Control-Allow-Headers', 'Content-Type');
$app->response()->headers->set('Content-Type', 'application/json');
$app->response()->headers->set('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
$app->response()->headers->set('Access-Control-Allow-Origin', '*');
$array = ["response" => "Hello World!"];
$app->get('/get', function() use($array) {
$app = \Slim\Slim::getInstance();
$app->response->setStatus(200);
echo json_encode($array);
});
$app->post('/post', function() {
$app = \Slim\Slim::getInstance();
$allPostVars = $app->request->post();
$dataFromClient = $allPostVars['post'];
$app->response->setStatus(200);
echo json_encode($dataFromClient);
});
$app->run();
Я включил CORS и GET запросы работают. Html обновляет содержимое JSON, отправленное сервером. Однако я получаю
XMLHttpRequest не может загрузить http://localhost:8080/server.php/post. Ответ на предполетный период имеет неверный код состояния HTTP 404
Каждый раз, когда я пытаюсь использовать POST. Зачем?
EDIT: REQ/Рез в соответствии с просьбой заостренными
Ну, как выглядит запрос/ответ на предполетный HTTP-запрос? – Pointy
Отредактировал вопрос – Deegriz
Хм, хорошо, вам не нужен явный маршрут для запроса «ОПЦИИ»? У вас есть только маршруты для «GET» и «POST». – Pointy