我有一個.html
頁面,該頁面引用了遠程JavaScript文件Data.js
。在Data.js
中有一個函數,它調用navigator.appName
並將生成的值分配到已在我的.html
頁面中定義的HiddenField
。將數據從html發佈到遠程asp.net服務器(.aspx.vb)
page.html中
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript" src="http://server.com/Data.js" ></script>
</head>
<body style = "font-family:Arial; font-size:10pt" onload="Execution();">
<form id="form1">
<div>
<input type="hidden" id="Hidden2" />
</div>
</form>
</body>
</html>
Data.js
function Myfunction()
{
var val = navigator.appName;
document.getElementByID('Hidden2').value = val
}
我也有到位的另一個功能Hidden2
值發佈到遠程服務器,以便將其存儲在數據庫如下:
function POSTHidden() {
$.ajax({
type: "POST",
url: "http://server.com/VB.aspx/GETHidden",
data: '{name: "' + $("#Hidden2")[0].value + '" }',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function (response) {
alert(response.d);
}
});
}
function OnSuccess(response) {
alert(response.d);
}
以及執行所述第一功能MyFunction();
然後第二功能POSTHidden();
作爲第三功能如下:
function Execution()
{
myFunction();
POSTHidden();
}
現在我VB.aspx
有一個WebMethod
稱爲GETHidden
基本上傳遞一個字符串作爲參數並將其存儲在數據庫如如下:
<System.Web.Services.WebMethod()> _
Public Shared Function GETHidden(ByVal value As String) As String
Dim value = String.Empty
Dim str = value.Split(New Char() {" "c})
Dim conn As String
conn = ConfigurationManager.ConnectionStrings("connStr").ConnectionString
Dim sqlcon As New SqlConnection(conn)
Try
sqlcon.Open()
Dim cmd = New SqlCommand("Insert into table (Record1) values (@param)", sqlcon)
cmd.Parameters.AddWithValue("@param", value)
cmd.ExecuteNonQuery()
cmd.Dispose()
sqlcon.Close()
Catch ex As Exception
End Try
End Function
以上所有作品的ONLY IF的.html
頁面是在同d因爲根據此post生成ajax request
或VB.aspx
。正如我試圖將.html
移出我通常上傳到的域並將其上載到另一個域時,在打開.html
時,它不起作用,而如果它位於相同的域名中,則它起作用。我試圖實現的目標是在任何地方都有.html
文件,並且在運行時,從引用的Data.js
收集的數據應該發佈到遠程服務器並存儲在數據庫中。因此,.html
頁面應該可以從任何地方遠程工作(儘管它位於本地或在本地PC上),並且應該將數據傳遞或發佈到遠程服務器(通過ajax請求或可以解決問題的任何POST請求)以便Hidden2
可以存儲在數據庫中。請記住,瀏覽器兼容性和多用戶同時打開頁面(多發帖子請求到服務器)。任何建議或想法將不勝感激。