2011-03-16 21 views
6

我做一些Ajax調用通過jQuery得到的文件,像這樣:jQuery的阿賈克斯緩存

$.ajax({ 
     url: "/resx.mvc", 
     data: { 
      virtualPath: options.virtualPath, 
      keys: options.keys, 
      global: options.global 
     }, 
     cache: true, 
     success: function (values) { 
      $.extend(assignTo, values); 
     }, 
     dataType: "JSON", 
     traditional: true 
    }); 

當我看到在提琴手的請求,我看到這兩個頭部被髮送,並讓我的ASP .NET發送過期標頭的響應與-1:

Pragma: no-cache 
Cache-Control: no-cache 

如何讓jQuery不發出no-cache?

回答

6

beforeSend需要一個可用於操作請求標頭的ajax對象(XmlHttpRequest對象)。以下是使用回調中返回的ajax對象在請求中設置標題的示例:

$.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)); 
      } 
     });