對於我後悔,我發現自己在一個情況下,我嘗試通過插入JavaScript代碼來呈現數據到另一個網頁頁面的原因。生成JavaScript在ASPX頁面,並提交到SharePoint
從本質上說什麼,我做的是從aspx頁面內查詢數據庫,並出將數據寫入JavaScript數組。這個aspx頁面被用作腳本標籤中的src元素。
當瀏覽器是IE這僅適用於realease。
的代碼可能有助於解釋,[此頁按預期工作] http://server1/Website1/ <
<%@ Page ContentType="application/javascript" Language="C#" AutoEventWireup="true" CodeFile="GetDataFromDB.aspx.cs" Inherits="GetDataFromDB" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
</body>
</html>
而後面的代碼中,我們有
public partial class GetDataFromDB: System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Clear();
Response.ContentType = "application/javascript";
StringBuilder output = new StringBuilder();
output.Append(" var data= [");
// Open database connection
// Get some data
// write it out into the output StringBuilder
// close down connection
output.Append("];)";
byte[] data = GetByteArray(output.ToString());
Response.OutputStream.Write(data, 0, data.Length);
Response.OutputStream.Flush();
Response.End();
}
}
在在SharePoint頁面我已經包括這個腳本標籤
<script language='javascript' type='application/javascript' src='http://server1/Website1/GetDataFromDB.aspx' ><\script>
現在這項工作正常在IE瀏覽器和數據呈現給頁面,但在Firefox和Opera這似乎工作正常,但在腳本文件的內容中,每個字符都穿插一個?,即它開始:
v?a?r? d?a?t?a?=?[? .... etc
如果我將生成的頁面的內容複製到文本文件並將其保存在同一位置(例如http://server1/Website1/GetDataFromDB.js),並將其用作源文件,則everthing將起作用。
任何一個有任何想法,我做錯了什麼?
附加信息,tho頁面從不同的主機運行,並且兩者都通過IIS被切斷,我完全控制託管http://server1/Website1/GetDataFromDB.aspx的服務器,但是在父頁面正在服務的那個服務器上沒有控制權。