我有.html
一个引用远程 javascript 文件的页面Data.js
。其中Data.js
有一个函数调用navigator.appName
并将生成的值分配给我页面HiddenField
中已经定义的值。.html
页面.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>
数据.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
仅当页面与根据此帖子生成或位于.html
同一域中时,上述所有内容才有效。当我尝试将我通常上传到的域移出并将其上传到另一个域时,当打开 时,它不起作用,而如果它在同一个域名中则它起作用。我想要实现的是,要让文件位于任何地方并且在运行时,从引用收集的数据应该发布到远程服务器并存储在数据库中。因此,ajax request
VB.aspx
.html
.html
.html
Data.js
.html
页面应该在任何地方远程工作(尽管它位于域中或是否在本地 PC 上),并且数据应该被传递或发布到远程服务器(通过 ajax 请求或任何可以解决问题的 POST 请求),以便Hidden2
可以存储在数据库中。请记住,浏览器兼容性和多个用户同时打开页面(对服务器的多个发布请求)。任何建议或想法将不胜感激。