我用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