我希望我的移动网络应用能够下载文件。不幸的是,我的Android设备告诉我它不支持通过jquery插件jquery.fileDownload.js下载文件... 所以我只发送一个jsonP(跨域,因为我的应用程序在另一台服务器上运行)请求。
我的php脚本看起来
ob_clean();
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="file.JPG"');
readfile('/var/.../file.JPG');
die();
在我的android chrome浏览器中,发送jsonp请求后没有任何反应。 我做错了什么?是不是可以通过jsonp下载文件?测试相同的代码 在我的桌面浏览器上工作得很好。
提前致谢。
答案 0 :(得分:1)
JSONP要求您发回实际的可执行JavaScript代码。你只是倾销了一些基本上随机的字节,你的浏览器会尝试执行这些字节,而且会失败。
您需要先阅读一些内容:http://en.wikipedia.org/wiki/JSONP
您需要使用正确的JSONP回调进行响应,并将您的文件数据作为参数包含在内,例如
header('Content-Type: text/javascript');
echo "jsonCallback(", json_encode(file_get_contents('your file here')); , ");"