2013-02-20 16 views
1

我在jQuery AJAX POST中調用了REST服務。該服務被調用並且http請求變爲POST請求時我不使用beforeSend函數在AJAX調用中。但是當使用beforeSend函數時,請求將作爲OPTIONS請求傳遞,並且服務未被調用並返回null。它適用於IE8。當Firefox添加beforeSend時會發生什麼?我的代碼中有任何錯誤。
jQuery的代碼beforeSend:AJAX jQuery POST沒有在Firefox中傳遞標頭值

var postCall = function() { 
$.support.cors = true; 
var HFAssoRefId = document.getElementById('MainContent_HFAssoRefId').value; 
var HFLoginId = document.getElementById('MainContent_HFLoginId').value; 
var HFPartnerId = document.getElementById('MainContent_HFPartnerId').value; 
var HFFirstName = document.getElementById('MainContent_HFFirstName').value; 
var HFLastName = document.getElementById('MainContent_HFLastName').value; 
var HFComments = document.getElementById('MainContent_HFComments').value; 
var HFCreatedDate = document.getElementById('MainContent_HFCreatedDate').value; 
var HFToken = document.getElementById('MainContent_HFToken').value; 
var Input = { 
AssoRefId: HFAssoRefId, LoginId: HFLoginId, 
PartnerId: HFPartnerId, FirstName: HFFirstName, 
LastName: HFLastName, Comments: HFComments, 
CreatedDate: HFCreatedDate, Token: HFToken 
; 
alert(JSON.stringify(Input)); 
var url = document.URL; 
var currentdate = new Date(); 
var datetime = (currentdate.getMonth() + 1) + "/" 
+ currentdate.getDate() + "/" 
+ currentdate.getFullYear() + " " 
+ currentdate.getHours() + ":" 
+ currentdate.getMinutes() + ":" 
+ currentdate.getSeconds(); 
$.ajax({ 
type: "POST", 
beforeSend: function (xhr, settings) { 
xhr.setRequestHeader("Date", datetime); 
xhr.setRequestHeader("URL", url); 
}, 
url: "http://localhost:40680/LinkService.svc/TokenInsertion",   
data: JSON.stringify(Input), 
contentType: "application/json", 
dataType: "json", 
success: function (response) { 
alert(response); 
}, 
error: function (xhr, status, error) { 
alert(error); 
alert(status); 
} 
}); 
} 

回答

1

這裏是Great Example.

$.ajax(
{ 
    type:"POST", 
    beforeSend: function (request) 
    { 
     request.setRequestHeader("Authority", authorizationToken); 
    }, 
    url: "entities", 
    data: "json=" + escape(JSON.stringify(createRequestObject)), 
    processData: false, 
    success: function(msg) 
    { 
     $("#results").append("The result =" + StringifyPretty(msg)); 
    } 
}); 
+0

在samw方式,我在我的代碼xhr.setRequestHeader( 「日期」,日期時間)通過; – kk1076 2013-02-20 10:12:28