【发布时间】: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