我的目标是使用 ajax 方式上传文件。我使用这个 javascript 库http://valums.com/wp-content/uploads/ajax-upload/demo-jquery.htm
- 我的页面上有一个链接,例如示例页面上的“上传”按钮。
- 当我单击它时,“打开文件”对话框打开。
- 我选择文件并自动提交表单。
这是我的 JavaScript 代码。
var upload_btn = $('#upload-opml');
new AjaxUpload(upload_btn.attr('id'), {
action: upload_btn.attr('href'),
name: 'opml',
onComplete: function (file, response) {
//
}
});
这是 Ruby on Rails 中的服务器代码。
def upload_opml
render :text => 'hello'
end
标题,取自 Firebug。
>> Response headers
Server nginx/0.7.62
Date Wed, 09 Jun 2010 19:03:28 GMT
Content-Type text/html; charset=utf-8
Connection keep-alive
Etag "5d41402abc4b2a76b9719d911017c592"
X-Runtime 18
Content-Length 5
Cache-Control private, max-age=0, must-revalidate
Set-Cookie _RssWebApp_session=BAh7CDoPc2Vzc2lvbl9pZCIlMzJhMTQ0ZWZhOGM3YmIwODFhZmFmNjkwYTI1YWQ2ZjQ6EF9jc3JmX3Rva2VuIjEvZHVzdm1NOVlMTUF6bEw3cGRFT2I3RzZvcVJZUU42bCtMNS9PVVYrNHdBPToMdXNlcl9pZGkG--13f1950a9530591881404fbfab7b1246f98f0d81; path=/; HttpOnly
>> Request headers
Host readbox.cz
User-Agent Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.2) Gecko/20100115 Firefox/3.6
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language ru,en-us;q=0.7,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Referer http://readbox.cz/view
Cookie _RssWebApp_session=BAh7CDoPc2Vzc2lvbl9pZCIlMzJhMTQ0ZWZhOGM3YmIwODFhZmFmNjkwYTI1YWQ2ZjQ6EF9jc3JmX3Rva2VuIjEvZHVzdm1NOVlMTUF6bEw3cGRFT2I3RzZvcVJZUU42bCtMNS9PVVYrNHdBPToMdXNlcl9pZGkG--13f1950a9530591881404fbfab7b1246f98f0d81; login=1; APE_Cookie=%7B%22frequency%22%3A11%7D; show-tsl=0
但是在 Firefox 中我得到一个错误
!:@8?BC http://readbox.cz (document.domain= http://readbox.cz ) >B:070=> 2 @07@5H5=88 =0 ?>;CG5=85 A2>9AB20 HTMLDocument.readyState 87 http://readbox.cz (document.domain =5 1K; CAB0=>2;5=)。
[打破这个错误] if (doc.readyState && doc.readyState != 'complete') {
在谷歌浏览器中
不安全的 JavaScript 尝试从具有 URL http://readbox.cz/view#/posts/all 的框架访问具有 URL http://readbox.cz/subscriptions/upload_opml的框架。域、协议和端口必须匹配。
/javascripts/ajaxupload.js?1276107673:574未捕获类型错误
:无法读取未定义的属性“readyState”
域 readbox.info 指向 127.0.0.1。是为了发展。