文件上传在phonegap windows build上显示错误代码3

时间:2014-12-22 04:42:59

标签: cordova windows-phone-8 file-transfer

我使用phonegap + jquery mobile在windows和android中创建和应用。 我有一个文件上传功能,它在Android构建上正常工作,但在Windows构建中它显示错误代码3(FileTransferError.CONNECTION_ERR)。

我的代码如下:

var options = new FileUploadOptions();
        options.fileKey = "file";
        options.fileName = 'xxxxxx.mp3';
        options.mimeType = 'audio/mpeg3';
        var fileFullPath = rootFolderPath+"xxxxxx.mp3";
        var params =  new Object();
        params.songId = 12;
        options.params = params;
        options.headers = {
               Connection: "close"
        }
        options.chunkedMode = false;
        var uploadUrl = "www.myapiurl.com";        
        var ft = new FileTransfer();
        ft.upload(fileFullPath, encodeURI(uploadUrl), winUpload, failUpload, options);

请有人帮我解决这个问题。 谢谢大家

1 个答案:

答案 0 :(得分:0)

查看文件传输插件的Windows实现的源代码,如果在尝试联系服务器时根本没有响应,则返回CONNECTION_ERR,因此我怀疑这可能是一个安全问题;也许是一个CORS问题?您的config.xml文件中是否有<access origin="*" />(这是Cordova的默认设置)?另外,如果您正在使用jQuery Mobile,您是否在启动代码中调用$.mobile.allowCrossDomainPages(JQM默认为&#34;不允许&#34;)?

同样在Windows Phone 8上(这是专门针对8对8.1),您需要同时授予&#34; Internet(客户端和服务器)&#34;和#34;私人网络&#34; package.windows80.appxmanifest文件中的功能,以便您可以访问用户的公共和工作/私人互联网连接,否则您将收到连接错误:

<Capabilities>
    <Capability Name="internetClientServer" />
    <Capability Name="privateNetworkClientServer" />
</Capabilities>

这里有关于这些功能的完整文章:

https://msdn.microsoft.com/en-us/library/windows/apps/hh770532.aspx