【发布时间】:2010-05-04 17:17:32
【问题描述】:
我在基于 Webkit 的浏览器(Safari 和 Chrome - 我正在 Mac 上测试)遇到了一个奇怪的问题,我不确定是什么原因造成的。这是我创建的复制问题的小脚本:
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" language="javascript">
function doRequest() {
document.test.submit();
$.ajax({
type: "GET",
cache: false,
url: 'ajax.php?tmp=1',
success: doSuccess
});
}
function doSuccess(t_data,t_status,req) {
alert('Data is: '+ t_data +', XMLHTTPRequest status is: '+ req.status);
}
</script>
</head>
<body>
<form name="test" method="post" action="ajax.html" enctype="multipart/form-data">
<input type="file" name="file_1">
<br><input type="button" value="upload" onclick="doRequest();">
</form>
</body>
</html>
ajax.php 是:
<?php
echo $_REQUEST['tmp'];
?>
这在 Firefox 上可以正常工作,但在 Safari 和 Chrome 上 XMLHTTPRequest 状态始终为“0”。如果我删除这一行:
document.test.submit();
然后它可以工作,但是表单当然没有提交。我尝试将表单提交按钮从“按钮”更改为“提交”,但这也阻止了它在 Safari 或 Chrome 上运行。
我想要完成的是:
- 提交表格
- 调用另一个脚本以获取通过表单上传的文件的状态(用于小型上传进度表)。
非常感谢任何帮助 - 我希望这只是我不熟悉的一个怪癖。
谢谢!
- 布赖恩
【问题讨论】:
标签: php jquery ajax webkit google-chrome