2010-11-25 6 views
0

ASIFormDataRequestを使用していくつかの値を送信しようとしています。問題は、PHPスクリプトが実行されても、投稿データが受信されないということです。ここでASIFormDataRequestはポスト値を送信しません

は、私が何をすべきかです:

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
[request setPostValue:@"Ben" forKey:@"first_name"]; 
[request setPostValue:@"Copsey" forKey:@"last_name"]; 
[request startSynchronous]; 

サーバーは、私は次のPHPテスト・スクリプトを持って受け取るかどうか確認するために:

$handle = fopen("output.txt", "w"); 
fwrite($handle, count($_POST)."\n"); 
fwrite($handle, count($_GET)."\n"); 
fwrite($handle, count($_FILES)."\n"); 
foreach ($_POST as $key => $value) 
{ 
fwrite($handle, "POST $key=$value\n"); 
} 
foreach ($_GET as $key => $value) 
{ 
fwrite($handle, "GET $key=$value\n"); 
} 
fclose($handle); 

同じスクリプトは、次のHTMLフラグメントで動作します:

<FORM action="http://......." 
     enctype="multipart/form-data" 
     method="post"> 
    <P> 
    What is your name? <INPUT type="text" name="submit-name"><BR> 
    <INPUT type="submit" value="Send"> <INPUT type="reset"> 
</FORM> 

htmlフラグメントはphpスクリプトで動作するため、私はphpとserveを疑うrは問題ではありません。

私のiPhoneからASIFormDataRequestが呼び出されないと、なぜ私は少しのアイデアはありません。

誰かが私を助けてくれますか?

よろしく、 サシャ

+0

もう少しテストをしたところ、サーバー構成であることが分かりました。私は問題の原因を見つけ出していませんが、別のサーバーでは問題はありません。また、障害のあるサーバーでは、コンテンツタイプのヘッダーが見つからず、要求メソッドは常にGET(POSTではない方法)であることがわかりました。どちらのサーバーもWindows XPでxamppを実行します。欠陥のあるものは、PHP 5.3.1を持っています。 – Sascha

+0

さて、私の結論は、私の問題はサーバーの設定から来ていると思います。あまりにも悪いことに、私はWindows上でXAMPPに固執しています。それは簡単ではありません。 – Sascha

答えて

6

は、私は最終的に理由を見つけるために管理:サーバがwww.site.comにsite.comからリダイレクトし、そのせいでのポスト値を失っていました。このリダイレクトがなければ、すべて正常に動作します。お役に立てれば。

+0

素晴らしい!これを投稿していただきありがとうございます。 – Sascha

+0

ああああ!最後に私の要求がうまくいかない理由。私はwwwのリダイレクトを考えていませんでした!あなたは私の束をより多くの時間を保存しました、ありがとう! –

+0

私はhttpからhttpsへリダイレクトしており、httpへの投稿要求を送信していました。これはそれを説明する! – Swindler

関連する問題