Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数据从html发布到远程asp.net服务器(.aspx.vb)_Javascript_Asp.net_Html_Vb.net_Jquery - Fatal编程技术网

Javascript 将数据从html发布到远程asp.net服务器(.aspx.vb)

Javascript 将数据从html发布到远程asp.net服务器(.aspx.vb),javascript,asp.net,html,vb.net,jquery,Javascript,Asp.net,Html,Vb.net,Jquery,我有一个.html页面,其中引用了一个远程javascript文件Data.js。在Data.js中,有一个函数调用navigator.appName并将生成的值分配给已在我的.html页面中定义的HiddenField Page.html <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title>

我有一个
.html
页面,其中引用了一个远程javascript文件
Data.js
。在
Data.js
中,有一个函数调用
navigator.appName
并将生成的值分配给已在我的
.html
页面中定义的
HiddenField

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>
我还有另一个功能,可以将
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);
}
function Execution()
{
myFunction();
POSTHidden();
}
以及执行第一个函数
MyFunction()的第三个函数
然后是第二个函数
POSTHidden()如下所示:

    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);
}
function Execution()
{
myFunction();
POSTHidden();
}
现在在我的
VB.aspx
上有一个名为
GETHidden
WebMethod
,它基本上将字符串作为参数传递并存储在数据库中,如下所示:

<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
_
公共共享函数GETHidden(ByVal值作为字符串)作为字符串
Dim值=字符串。空
Dim str=value.Split(新字符(){“c})
作为字符串的Dim conn
conn=ConfigurationManager.ConnectionString(“connStr”).ConnectionString
Dim sqlcon作为新的SqlConnection(conn)
尝试
sqlcon.Open()
Dim cmd=New SqlCommand(“插入表(记录1)值(@param)”,sqlcon)
cmd.Parameters.AddWithValue(“@param”,value)
cmd.ExecuteNonQuery()
cmd.Dispose()
sqlcon.Close()
特例
结束尝试
端函数

只有当
.html
页面与从中生成的
ajax请求位于同一域中,或者
VB.aspx
根据该域进行定位时,上述所有操作才有效。当我尝试将
.html
移出我通常上载到的域并将其上载到另一个域时,当打开
.html
时,它不起作用,而如果它位于同一域名中,它就起作用。我试图实现的是,要在任何位置和运行时都有一个
.html
文件,从引用的
data.js
收集的数据应该发布到远程服务器并存储在数据库中。因此,
.html
页面应该从任何远程位置工作(不管它在哪个域中,或者是否在本地PC上),并且数据应该传递或发布到远程服务器(通过ajax请求或任何可以解决问题的POST请求),以便
Hidden2
可以存储在数据库中。请记住,浏览器兼容性和多个用户同时打开页面(对服务器的多个post请求)。如有任何建议或想法,将不胜感激

必须在服务器端指定访问控制头才能处理跨域请求

Access-Control-Allow-Headers
HTTP访问控制(CORS)

参考这些。与其他应用程序相比,在.net中有点棘手