したがって、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]);
}];
コードイグナイター コントローラー:
public function test_func() {
echo "Username: " . $this->input->post('username');
}
電話から実行すると、ログに「Username:」が表示されますが、実際のユーザー名はありません。
しかし、別のサーバーで PHP スクリプトを作成すると、次のようになります。
echo "Username: " . $_POST['username'];
電話から実行すると、次のようになります。
"Username: my username"
したがって、iPhoneアプリがデータをPOSTしていることはわかっていますが、codeigniterコントローラーに読み取らせることができません。
AFNetworking を問題なく使用する多くの iPhone アプリを作成しましたが、codeigniter バックエンドを使用したことはないため、何が問題なのかわかりません。
CSRF 保護がオンになっていません。
どんな助けでも大歓迎です。
上記のコードはすべて、厳密にテスト目的であり、実際のメソッドではありませんが、基本的な概念は同じです。