Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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服务器端调用和MVC3?_Javascript_Asp.net Mvc 3_Asynchronous - Fatal编程技术网

Javascript服务器端调用和MVC3?

Javascript服务器端调用和MVC3?,javascript,asp.net-mvc-3,asynchronous,Javascript,Asp.net Mvc 3,Asynchronous,我正在使用.NETMVC3开发一个应用程序,它通过页面上的js引用执行一些Javascript 一旦启动脚本,就会返回一些javascript并在客户端执行。在这个过程结束时,我需要打电话回mysite.com,发送与客户端相关的详细信息,如浏览器、IP地址等 为了实现这一点,我使用异步回调服务器来发送数据: xmlhttp.open("GET", "http://mysite.com/record_values/" + navigator.appVersion + "/

我正在使用.NETMVC3开发一个应用程序,它通过页面上的js引用执行一些Javascript

一旦启动脚本,就会返回一些javascript并在客户端执行。在这个过程结束时,我需要打电话回mysite.com,发送与客户端相关的详细信息,如浏览器、IP地址等

为了实现这一点,我使用异步回调服务器来发送数据:

    xmlhttp.open("GET", "http://mysite.com/record_values/" +
        navigator.appVersion + "/" +
        navigator.cookieEnabled + "/" +
        encodeURIComponent(document.URL), 
        true);
是否有其他建议的方法将此信息返回到我的服务器进行录制


谢谢。

请注意,您要查找的浏览器版本的某些信息已在用户代理字符串中传递。不过,Cookie支持并非如此。推荐人应该已经存在于标题中,因此可能不需要传递url

正如Daniel提到的,这应该是POST。100%绝对是一个帖子。除了检索之外,任何数据操作都应该通过http规范的post部分来完成


此外,我还将在控制器方法上传递一个MVC AntiForgeryToken@Html.AntiForgeryToken和[ValidateAntiForgeryToken],以帮助确保攻击者不会通过重复调用来过载您的服务器/数据库。

要澄清,HTTP方法POSTYour唯一的选择是新的ish web套接字工具。@Daniel A.White-有道理。这样我就不用担心使用encodeURIComponent了。@Pointy-我看了JSWebSocket选项。我不想让站点1上的Javascript负载保持小。我认为异步帖子仍然会很快,不是吗?我读到,在网站的公共部分,在用户还没有经过身份验证的地方,防伪令牌是无用的。post请求将来自站点1上的Javascript,将数据发送到mysite.com/xxxx/上的我的控制器。有可能避免这样的CSRF攻击吗?也许最适合一个新问题?如果这是一个任何人都可以访问的面向公众的应用程序,那么是的,它是相当无用的。如果它是针对内部的,那么我会考虑一些令牌方案,尽管不幸的是内置的支持不提供一次性使用令牌。只是要小心谁可以调用最终将数据放入数据库的方法。攻击者可以通过对数据库的DoS攻击直接利用此漏洞,或者使用XSS之类的工具让每个访问站点的浏览器一遍遍地调用数据库。只是考虑一下。