1

次のコードは、私のiPhoneシミュレーターで正常に機能します。私はCordova1.6を使用してIOS5.1で試し、1.7でも試しました。外部ホストエントリは127.0.0.1に構成されています

これはコードです:

          function uploadPhoto(imageElement){
               var options = new FileUploadOptions();
               var options = new FileUploadOptions();
               options.fileKey="file";
               options.mimeType="image/jpeg";
               options.fileName="carimage.jpg";
               options.chunkedMode = true;
               var params = new Object();
               params.value1 = "Car";
               params.value2 = "Used";

               options.params = params;
               options.chunkedMode = false;

               var ft = new FileTransfer();
               console.log("Upload Photo");
               ft.upload(
                         document.getElementById(imageElement).src,
                         "http://127.0.0.1:8080/claim/image",
                         win, 
                         fail,
                         options, 
                         true);
               console.log("Done Uploading");
           }

           function win(r) {
               console.log("Code = " + r.responseCode);
               console.log("Response = " + r.response);
               console.log("Sent = " + r.bytesSent);
           }

           function fail(error) {
               alert("An error has occurred: Code = " + error.code);
               console.log("upload error source " + error.source);
               console.log("upload error target " + error.target);
           }

Xcodeでのシミュレータ出力は次のとおりです。

2012-05-09 12:45:09.390 motorazzi[24964:13403] Multi-tasking -> Device: YES, App: YES
2012-05-09 12:48:28.421 motorazzi[24964:13403] [INFO] Upload Photo
2012-05-09 12:48:28.484 motorazzi[24964:13403] [INFO] Done Uploading
2012-05-09 12:48:40.662 motorazzi[24964:13403] [INFO] Code = 200
2012-05-09 12:48:40.662 motorazzi[24964:13403] [INFO] Response = 
2012-05-09 12:48:40.663 motorazzi[24964:13403] [INFO] Sent = 1358

これは問題ありませんが、Xcodeのデバイスを使用すると、次のようになります。

2012-05-09 12:51:40.537 motorazzi[885:707] Multi-tasking -> Device: YES, App: YES
2012-05-09 12:51:56.554 motorazzi[885:707] [INFO] Upload Photo
2012-05-09 12:51:56.654 motorazzi[885:707] [INFO] Done Uploading
2012-05-09 12:51:56.748 motorazzi[885:707] File Transfer Error: Could not connect to the server.
2012-05-09 12:51:56.798 motorazzi[885:707] [INFO] An error has occurred: Code = 3
2012-05-09 12:51:56.803 motorazzi[885:707] [INFO] upload error source http://127.0.0.1:8080/claim/image
2012-05-09 12:51:56.813 motorazzi[885:707] [INFO] upload error target file:///var/mobile/Applications/699481A7-C598-43BA-BDCA-962DEF925EE5/tmp/photo_020.jpg

サーバーログで、デバイスがまったく接続されていないことがわかります。私が間違っているかもしれない、またはチェックすべきことはありますか?

4

1 に答える 1

1

デバイスで実行している場合、IPアドレス127.0.0.1または「localhost」はデバイス自体です。そのため、サーバーにアクセスしていません。アップロードスクリプトをホストしているサーバーのホスト名またはIPアドレスを入力する必要があります。

また、plistでサーバーをホワイトリストに登録してください。そうしないと、サーバーが拒否されます。

于 2012-05-09T13:26:58.723 に答える