所以我在将 POST 数据发布到我的 codeigniter 控制器时遇到问题,但是如果我有一个带有 $_POST 的常规 PHP 脚本,它可以工作,这是我的代码:
iPhone方法:
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
[username text],@"username",
nil];
AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://www.mysite.com/"]];
[client postPath:@"test/text_func" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSString *response = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSLog(@"%@",response);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"%@",[error localizedDescription]);
}];
Codeigniter 控制器:
public function test_func() {
echo "Username: " . $this->input->post('username');
}
如果我从手机运行它,我会在日志中得到“用户名:”,没有实际用户名。
但是,如果我在单独的服务器上创建一个 PHP 脚本:
echo "Username: " . $_POST['username'];
当我从手机运行它时,我会得到这个:
"Username: my username"
所以我知道 iPhone 应用程序正在发布数据,但我无法让 codeigniter 控制器读取它。
我已经制作了许多使用 AFNetworking 没有问题的 iPhone 应用程序,但从来没有使用 codeigniter 后端,所以我不知道问题可能是什么。
我没有开启 CSRF 保护。
任何帮助将不胜感激。
以上所有代码都严格用于测试目的,虽然不是真正的方法,但具有相同的基本概念。