【发布时间】:2013-12-31 22:04:21
【问题描述】:
我正在尝试将服务器数据解析为 REST API 作为要存储在数据库中的帖子。但是数据似乎没有被解析。如果我按如下方式对 url 进行硬编码,则数据将成功发布,
$.ajax({
url: 'index.php/rest/resource/questions/uId/1/qTitle/TestQ/qBody/TestBody/qTag/1',
uccess: function(data) {
alert(data);
},
type: "post"
});
但是如果我尝试如下动态插入数据,就不行了:
$.ajax({
url: 'index.php/rest/resource/questions/',
data: { 'uId\/':qUserId, '\/qTitle\/':qTitle, '\/qBody\/':qBody, '\/qTag\/':'1' },
success: function(data) {
alert(data);
},
type: "post"
});
这个问题可能有一个简单的解决方案,但我无法从网上找到的资源中得到任何积极的结果。
编辑
当我在浏览器上手动粘贴带有硬编码数据的查询时,
index.php/rest/resource/questions/uId/1/qTitle/TestQ/qBody/TestBody/qTag/1
T 提交要存储在数据库中的数据。我的要求是通过ajax调用中的变量使变量动态插入到url中:)
编辑 2
休息控制器代码
<?php
class Rest extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->model('student');
$this->load->helper('url');
}
// we'll explain this in a couple of slides time
public function _remap()
{
// first work out which request method is being used
$request_method = $this->input->server('REQUEST_METHOD');
switch (strtolower($request_method)) {
case 'post' : $this->doPost(); break;
default:
show_error('Unsupported method',404); // CI function for 404 errors
break;
}
}
public function doPost(){
$args = $this->uri->uri_to_assoc(2);
switch ($args['resource']) {
case 'questions' :
$res = $this->student->askQ($args);
if ($res === false) {
echo json_encode(array('error' => 'unable to post','status' => 1));
}
else {
echo json_encode(array('status' => 0));
}
break;
default:
show_error('Unsupported resource',404);
}
echo 'posted';
}
}
?>
从 Rest Controller 使用的学生模型
<?php
class Student extends CI_Model {
function __construct()
{
parent::__construct();
$this->load->database();
}
public function askQ($args)
{
$timeVal = date( "Y-m-d H:i:s", mktime(0, 0, 0));
$qVotes = 0;
$qStatus = 1;
if (!isset($args['uId']) || !isset($args['qTitle']) || !isset($args['qBody']) || !isset($args['qTag'])) {
return false;
}
$this->db->insert('questions',array('userId' => $args['uId'],'questionTitle' => $args['qTitle'],'questionBody' => $args['qBody'],'tagQuestionId' => $args['qTag'],'postDate' => $timeVal,'status' => $qStatus,'votes' => $qVotes));
return true;
}
}
?>
【问题讨论】:
-
您在“成功”功能上缺少一个“s”。不知道这会如何工作=D
-
@m59 :D 我看到了,感谢您指出 :) 但仍然没有发布数据
标签: javascript php ajax rest