Ajax 发布到CakePHP API时返回错误的JSON视图
几天来,我一直在尝试使用我的蛋糕应用程序,但都没有成功。你能给我指一下正确的方向吗 当我尝试通过jQuerysAjax 发布到CakePHP API时返回错误的JSON视图,ajax,json,cakephp,Ajax,Json,Cakephp,几天来,我一直在尝试使用我的蛋糕应用程序,但都没有成功。你能给我指一下正确的方向吗 当我尝试通过jQuerys$.ajax向我的admin\u add()方法发帖时,我只会得到我的视图/$Controller/json/admin\u index.ctp(或index.ctp)返回,而不会返回视图/$Controller/json/admin\u add.ctp模板 请求似乎已通过身份验证,可以在开发工具中作为POST(200)查看,但无论我做什么,都只返回index.ctp视图,而不是admi
$.ajax向我的admin\u add()
方法发帖时,我只会得到我的视图/$Controller/json/admin\u index.ctp
(或index.ctp
)返回,而不会返回视图/$Controller/json/admin\u add.ctp模板
请求似乎已通过身份验证,可以在开发工具中作为POST(200)查看,但无论我做什么,都只返回index.ctp视图,而不是admin_add
以下是ajax链接:
$.ajax({
type: "POST",
url: "http://dev.mydomain.co.uk/faqArticles.json?token=" + userToken,
data: data,
dataType: "json",
这里是admin\u add方法
public function admin_add() {
// New API code
$this->Api->denyPublic('add');
if ($this->request->is('post')) {
if ($this->request->is('api')) {
if ($this->request->is('json')) {
// Need to add the current auth'd users to this request data here
$this->request->data['user_id'] = $this->Auth->user('id');
// Get JSON encoded data submitted to a PUT/POST action
$data = $this->request->input('json_decode');
$this->FaqArticle->create();
if ($this->FaqArticle->save($data)) {
// Get the id of the just created post to pass back to client for future updates.
$caId = $this->FaqArticle->getInsertID();
$success = true;
} else {
$caId = null;
$success = false;
}
$this->set(compact('success', 'caId'));
}
} else {
// Normal CRUD stuff
$this->FaqArticle->create();
// Assigned logged in users to article
$this->request->data['FaqArticle']['user_id'] = $this->Auth->user('id');
if ($this->FaqArticle->save($this->request->data)) {
$this->Session->setFlash('The faq article has been saved', 'flash_success');
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash('The faq article could not be saved. Please, try again.', 'flash_failure');
}
}
}
$users = $this->FaqArticle->User->find('list');
$faqCategories = $this->FaqArticle->FaqCategory->find('list');
$this->set(compact('users', 'faqCategories'));
// Set layout
$this->layout = 'admin';
}
views/faqArticles/json/admin_index.ctp看起来像:
<?php
$this->set('success', true);
$this->set('data', "ADMIN INDEX");
echo json_encode(compact('success', 'data'));
?>
<?php
$this->set('success', true);
$this->set('data', "ADMIN ADD");
echo json_encode(compact('success', 'data'));
?>
这将返回admin_add JSON视图,但会按照上面的步骤获取admin索引
很明显我做错了什么?任何帮助都会很棒
谢谢当您发出Ajax请求时,我认为您只是链接到了错误的页面(索引页面而不是admin\u add),我希望您的Ajax请求看起来更像这样:
$.ajax({
type: "POST",
url: "http://dev.mydomain.co.uk/admin/faqArticles/add.json?token=" + userToken,
data: data,
dataType: "json"});
你确实是对的。cake文档说您应该发布到索引-POST/recipes.format RecipesController::add(),但这个插件显然不是这样。谢谢
$.ajax({
type: "POST",
url: "http://dev.mydomain.co.uk/admin/faqArticles/add.json?token=" + userToken,
data: data,
dataType: "json"});