【发布时间】:2011-05-20 23:08:11
【问题描述】:
我决定不使用设置请求标头的 beforeSend 方法,而是考虑使用 jQuery $.ajax() 调用的标头设置选项。当然,我在这里访问了这个页面,http://api.jquery.com/jQuery.ajax/,但是文档很少,我找不到任何方法来设置多个标题以及在该页面或其他任何地方设置多个标题的格式。
@tahir:那为什么这不起作用?
<!DOCTYPE html>
<html>
<head>
<title>Multiple DnD Uploader</title>
<link rel="stylesheet" href="style.css" />
<script type = "text/javascript" src = "../music/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#drop').change(function(event){
files = event.target.files;
$('#drop').css('display', 'none');
for(var i = 0, len = files.length; i < len; i++) {
alert(files[i].fileName);
$.ajax({
type: "POST",
url: "uploader.php",
contentType: "multipart/form-data",
headers: {
"X-File-Name" : ""+files[i].fileName,
"X-File-Size" : ""+files[i].fileSize
},
data: 'hi',
success: function(data){
$('#info').append('Success: ' + data + '<br />');
},error: function(data){
$('#info').append('Error: ' + data + '<br />');
}
});
}
});
});
</script>
</head>
<body>
<div id="drop">
<h1>Drop files here</h1>
<p>To add them as attachments</p>
<input type="file" multiple="true" id="filesUpload" />
</div>
<div id="info">
</div>
</body>
</html>
两个 X-File-Name 和 X-File-Size 属性未显示在请求标头中。
解决方案:我觉得很愚蠢,原来我指向的特定 jquery.js 文件是 1.4.4,所以我升级了,现在它可以工作了!谢谢。
【问题讨论】:
-
如果您正在上传 ajax 文件,stackoverflow.com/questions/166221。
-
@hyperslug,通常我会,但这更像是一个学习练习,而不是我需要完成的项目,因此,我想完全自己编程,不过谢谢!跨度>
-
Tahir 发布的代码适用于 jQuery 1.5+,因此请检查您的版本是否至少是该版本,b/c 我不记得
headers:{}属性适用于 1.4.4。
标签: jquery ajax header setting