2013-03-12 72 views
0

我在jQuery中傳遞ajax調用中的標頭時遇到問題。在jquery中傳遞標頭與ajax

$.ajax({ 
    url: '/resources/ajax/customize.aspx?' + qs + '&nocache=' + Math.random(), 
    contentType: "application/json", 
    headers: values, 
    context: $this, 
    cache: false, 
    success: function(data) { 
      //do stuff here 
    } 
}); 

在大多數情況下,它會獲得標題值正確,但有時它不會獲取任何標題值。我確信'值'變量包含數據。我想知道是否有任何特定的情況下,標題不會通過Ajax?

更新: 我想它是:

$.ajax({ 
    url: '/resources/ajax/customize.aspx?' + qs + '&nocache=' + Math.random(), 
    contentType: "application/json", 
    beforeSend: function(xhr) { xhr.setRequestHeader('values',values); }, 
    //headers: values, 
    context: $this, 
    cache: false, 
    success: function(data) { 
        //do stuff here 
    } 
}); 

,沒有運氣這一點。

更新2

想通了這個問題。有一個帶有換行符的URL變量,所以換行符導致頭文件不能被傳遞。

+1

如果您已經添加'cache:false',爲什麼要傳遞'nocache'參數? – Blender 2013-03-12 20:20:50

+1

你傳遞了​​什麼標題?它是特定於瀏覽器的嗎?馬比http://stackoverflow.com/questions/7433556/jquery-jsonp-ajax-authentication-header-not-being-set有幫助嗎? – 2013-03-12 20:21:17

+0

可能是[this]的副本(http://stackoverflow.com/questions/3258645/pass-request-headers-in-a-jquery-ajax-get-call)問題? – 2013-03-12 20:23:13

回答

1

我正面臨同樣的問題。通過使用jquery(或者在JS中執行)$ .trim()方法來消除換行符。就我而言,我知道\ n \ r不會成爲合法價值的一部分。這必須檢查修剪來修復它。

+1

感謝您的評論,我有很久以前就解決了。你是對的,這完全是關於換行。只要你刪除它們,它工作得很好。 – 2013-09-17 14:24:22