【问题标题】:Phonegap file upload works for local server but not for remote serverPhonegap 文件上传适用于本地服务器,但不适用于远程服务器
【发布时间】:2012-09-09 16:22:26
【问题描述】:

在 Android 上,我使用的是 Phonegap

var ft = new FileTransfer();

ft.upload(pic_to_upload, "http://" + app_domain + "/test_phonegap.php/",
          success, failure, options);

如果我将域设置为 localhost 或 127.0.0.1 或 10.0.0.6(内部 IP),它可以工作, 但如果我使用网站的实际域,它就不起作用。

更具体地说,发生的是 php 脚本被执行(服务器是 Apache),但是如果我查看 $_REQUEST 或 $_FILE 变量它们是空的,而使用 localhost 它接收一切都很好。

我已经放入了我的 xml/config.xml:

<access origin="http://127.0.0.1*"/> <!-- allow local pages -->
<access origin="http://www.domain.com/"/> 

其中 domain.com 是我向其发送请求的域,它确实收到了请求,但没有 $_REQUEST 或 $_FILE 变量(也没有 $_GET 和 $_POST,所有这些变量都是空的)

可能出了什么问题?我完全迷惑了。

我完成的所有其他 AJAX 请求都是 JSONP 并且可以正常工作,但是对于文件上传它就无法正常工作。

另外,我在 Apache 上周的错误日志中没有看到任何内容,因此错误日志中没有任何相关内容。

感谢任何帮助

【问题讨论】:

  • 可能是因为同源政策
  • 也许我应该提到,这是在编译后从应用程序在 Android 上完成的,但它可能无论如何都连接到同源策略,但我不确定以什么方式。跨度>

标签: php android ajax cordova file-upload


【解决方案1】:

将您的域添加到 phonegap/cordova 白名单,除非您将域添加到白名单 phonegap 将阻止任何访问它们以获取更多信息的尝试:

http://docs.phonegap.com/en/1.9.0/guide_whitelist_index.md.html

【讨论】:

    猜你喜欢
    • 2017-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 2011-02-03
    相关资源
    最近更新 更多