2013-08-22 74 views
1

我有頁面跟蹤/跟蹤像素頁面,目前使用$ .post(PAIRS-DATA)將在JavaScript中收集的信息發回服務器。然後最終加載爲跟蹤像素。跟蹤像素跨域,ASP.NET,jQuery,AJAX

 finally 
     { 
      //tracking pixel 
      Response.ContentType = "image/gif"; 
      byte[] buffer = pix.BinaryData; 
      int len = buffer.Length; 
      Response.OutputStream.Write(buffer, 0, len); 

     } 

問題是,$ .post(PAIRS-DATA)在Chrome中被取消,因爲它是跨域。所以,我想

  $.ajax({ 
      type: "POST", 
      dataType: "jsonp", 
      jsonp: false, 
      processData: false, 
      crossDomain: true,     
      url: "URL", 
      data: dataPairs 
     }); 

這需要跨域問題的關心,但我現在得到「資源解釋爲腳本,但與MIME類型的圖像/ GIF轉:

我怎樣才能解決這個問題? $ .ajax調用有什麼問題嗎?

回答

1

您的ajax調用失敗,因爲JSONP要求服務器實際發回JSONP(即JSON +封裝)。

如果您必須在加載圖像之前使用JS收集數據,則可以嘗試在圖像的查詢字符串中傳遞所需的數據。

實施例:

$(document).append('<img src="http://host.com/path/to/image?' + formatDataAsQueryString());

+1

所以,我去掉跟蹤Response.ContentType = 「圖像/ GIF」; byte [] buffer = pix.BinaryData; int len = buffer.Length; Response.OutputStream.Write(buffer,0,len);並傳回圖像?這不會減慢速度嗎? – esoteric