Phonegap';s FileTransfer.upload()在Android上引发错误代码3

Phonegap';s FileTransfer.upload()在Android上引发错误代码3,android,cordova,upload,Android,Cordova,Upload,我正在将图片上传到服务器。我能够使用iOS成功上传图像,但当我在android上尝试时,我得到错误代码3。目前正在使用phonegap cordova 1.8.1 我已经尝试将true添加到参数中 upload(filePath, server, successCallback, errorCallback, options, **true**); 加上这个 options.chunkedMode = false; 我的AndroidManifest文件包含: <uses-permis

我正在将图片上传到服务器。我能够使用iOS成功上传图像,但当我在android上尝试时,我得到错误代码3。目前正在使用phonegap cordova 1.8.1

我已经尝试将true添加到参数中

upload(filePath, server, successCallback, errorCallback, options, **true**);
加上这个

options.chunkedMode = false;
我的AndroidManifest文件包含:

<uses-permission android:name="android.permission.INTERNET" />
<access origin="*"/>

我的cordova.xml文件包含:

<uses-permission android:name="android.permission.INTERNET" />
<access origin="*"/>

我错过什么了吗


谢谢

您可以尝试以下任一方法:

AndroidManifest.xml
文件的
标记中设置
android:debuggable=“true”

设置
,而不仅仅是
*
,如注释部分所建议的,如下所示:

<!-- <access origin="https://example.com" /> allow any secure requests to example.com -->
<!-- <access origin="https://example.com" subdomains="true" /> such as above, but including subdomains, such as www -->
<!-- <access origin=".*"/> Allow all domains, suggested development use only -->

这也发生在我身上。您应该指定
chunkedMode=false
(http://stackoverflow.com/questions/8522729/phonegap-filetransfer-upload-fails-on-android)


这是phonegap库中一个未修复的bug,因为没有bug修复,所以我必须通过我的工作来解决它(基本上是在每次出现故障时重新加载):

添加代码:

var op;
op = new FileUploadOptions();

op.headers = {
    Connection: "close"
};
添加此代码后,代码开始正常工作,没有错误。 更详细的描述:
希望有帮助

我已经向Telerik询问了我在AppBuilder中遇到的这个问题。根据他们的回答(我用的是3.2)

他们建议更新l(同时更新所有依赖项),看看这是否解决了您的问题。实际上,我在编译新库时遇到了另一个问题


我建议您尝试一下,看看是否适合您。

以下是我用来解决此问题的步骤:

添加了以下选项:

options.chunkedMode = false;
options.headers = {
      Connection: "close"
   };
但更重要的是,我使用GenyMoon作为测试的模拟器。将映像上载到localhost不起作用,因为仿真器在VM中运行,localhost表示VM的localhost,而不是web服务器的localhost

因此,您不应该上传到“localhost”,而应该上传到:

http://10.0.2.2 
并将以下行添加到config.xml中:

<access origin="10.0.2.2" subdomains="true"/>


我测试了它,它就像一个符咒。但我花了3天时间才让它正常工作。

这也可能是一个原因,并为我解决了这个问题:

除非在应用程序的Info.plist文件中指定了例外域,否则iOS 9和OSX 10.11要求所有计划从中请求数据的主机使用TLSv1.2 SSL


()

问题可能不在Phonegap中。如果服务器是基于Windows的服务器,请尝试使用其他服务器。此外,不要忘记添加以下行:

var options = new FileUploadOptions();
options.chunkedMode = false;
options.headers = {
      Connection: "close"
   };

抱歉,禁用分块模式没有帮助。我在iOS上有相同的错误代码,您是如何解决问题的?错误代码含义:1=FileTransferError.FILE\u NOT\u FOUND\u ERR 2=FileTransferError.INVALID\u URL\u ERR 3=FileTransferError.CONNECTION\u ERR 4=FileTransferError.ABORT\u ERR 5=FileTransferError.NOT\u MODIFIED\u ERR没有解决我的问题,与此纠缠了一周。还有其他建议吗?这对我在Windows服务器机器上使用PHP Web服务很有效。非常感谢在尝试了很多东西之后,在几个小时内,这对我在windows机器上的Ruby webserver(Roda)起到了作用。谢谢我需要
chunkedMode
,但是
连接:“close”
头对我来说很有用。谢谢<代码>连接:“关闭”标题对我有效。非常感谢。