Я использую AJAX в форме knockout.js, чтобы опубликовать некоторую информацию, которую должен получить CakePHP, однако Cake, похоже, ничего не находит. Кроме того, предупреждение не появляется, несмотря на статус 200 (OK) из POST.
Здесь AJAX
$.ajax({
url: "/orders/finalize_payment",
type: "POST",
dataType: "json",
contentType: "json",
data: JSON.stringify({"customer": customer_id}),
success: function(){
alert("success");
}
});
Здесь соответствующее действие в контроллере заказов. Прямо сейчас я полностью раздели его до минимума.
function finalize_payment($id = null){
$this->layout = false;
$this->autoRender = false;
if($this->request->is('post')){ //the user has submitted which status to view
print_r($this->request->data);
echo "test"; //just to make sure it reaching this point
}
}
Когда я открываю вкладку сети в chrome, она показывает полезную нагрузку запроса как
customer: 1
POST показывает успех, статус 200. Я проверил заголовки ответов, и он просто показывает
array
(
)
test
Несмотря на то, что хром показывает отправку полезной нагрузки, CakePHP не находит ее, по-видимому.
Обновление
Я изменил запрос от AJAX на $.post, и он сработал. Я до сих пор не знаю, почему
$.post("/orders/finalize_payment",{"customer_id":customer_id},function(data){
alert('success');
});