我用Google搜索了很多,但我没有找到任何解决方案为什么ajaxSubmit会不会发送正确的Ajax请求使用X-要求,随着= XMLHttpRequest的请求头
我使用jQueryUI Dialog和ajaxSubmit用于发送数据(文件和其他)通过模态对话框和Ajax。
我的问题很简单:数据被正确地发送到服务器,而不是通过AJAX即没有请求头属性X-Requested-With=XMLHttpRequest
所以,我该怎么办错或有任何已知的问题,这件事吗?
这是我的代码的一些片段。
$('#photo-dlg').dialog({
modal: true,
open: function() { $(this).load("/mywebsite/mydialog");}
//importing <form id="formid" method="post" name="updatePhoto" enctype="multipart/form-data"> ...
buttons: {
'cancel' : function() {$(this).dialog('close');},
'submit' : function() {
$('#formid').ajaxSubmit({
dataType: "json",
success: function (data) { $('#photo-dlg').dialog('close'); })
});}
});
顺便说一句,我曾尝试选项,如:
headers: {"X-Requested-With":"XMLHttpRequest"} //OR
data: {"X-Requested-With":"XMLHttpRequest"} //OR
beforeSend: function(xhrObj) {xhrObj.setRequestHeader("X-Requested-With", "XMLHttpRequest")}
没有任何成功
UPDATE:
您可以复制/粘贴下面的代码到HTML页面,并通过尝试你自己通过FireBug(=> No X-Requested-With header)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js"></script>
<script type="text/javascript" src="http://d23fbyuk1dcxop.cloudfront.net/js/jquery/jquery.multiselect-1.8.min.gz.js"></script>
<script type="text/javascript" src="http://d23fbyuk1dcxop.cloudfront.net/js/jquery/jquery.form.min.gz.js"></script>
</head>
<body>
<div id="photo-dlg2">
<form id="updatePhoto2" enctype="multipart/form-data" elementid="updatePhoto2" name="updatePhoto2" method="POST"
action="http://mywebsite.com/article/updatePhoto">
<input type="file" size="50" class="easyinput" id="photoFile" name="photoFile">
</form>
</div>
<script type="text/javascript">
$('#photo-dlg2').dialog({
modal: true,
buttons: { 'submit' : function() {
$('#updatePhoto2').ajaxSubmit({
dataType: "json",
success: function (data) {
alert(data['status']);
}
});
}}
});
</script>
</body>
</html>
什么是像萤火虫,LiveHTTPHeaders告诉你的工具? – Anders 2011-01-07 20:39:42
我尝试使用example @ http://jquery.malsup.com/form/#ajaxSubmit,我可以看到发送的头文件(用firebug来检查它)。 – Chandu 2011-01-07 20:41:37
也许你应该发布你用来寻找标题;问题可能在那里,而不是在你的页面代码中。 – Pointy 2011-01-07 21:01:58