我意识到跨站点脚本的这个问题已经被覆盖,但是对于web开发来说是新的,我还有一些问题。XMLHttpRequest跨站点脚本?
目前我正在测试我在我的PC上写入的HTML文件,该文件连接到另一台机器上的RESTFul Web服务。我得到status=0
。这是否被认为是跨站点脚本?
如果一台服务器托管一个带有JavaScript的文件,并且该JavaScript文件有XMLHttpRequest
秒到服务器自己的Web服务,那会工作,还是那么糟糕?
道歉,如果任何这些问题都很愚蠢。
我意识到跨站点脚本的这个问题已经被覆盖,但是对于web开发来说是新的,我还有一些问题。XMLHttpRequest跨站点脚本?
目前我正在测试我在我的PC上写入的HTML文件,该文件连接到另一台机器上的RESTFul Web服务。我得到status=0
。这是否被认为是跨站点脚本?
如果一台服务器托管一个带有JavaScript的文件,并且该JavaScript文件有XMLHttpRequest
秒到服务器自己的Web服务,那会工作,还是那么糟糕?
道歉,如果任何这些问题都很愚蠢。
不,这不是跨站点脚本。当从其他服务器包含脚本JS文件时,它将呈现在您的站点中,因此您将无法通过JS脚本最初所在的XMLHttpRequest站点进行访问。
如果这可能比任何主持jQuery文件的人都有可能,包括谷歌在内的许多服务器都会为XMLHttpRequests打开。
因此,这是不可能的。
如果你想从另一台服务器得到JSON响应,你可以使用pjson。谷歌它的更多信息。
和Cross Site Scripting是有人在您的网站上注入JavaScript代码以绕过访问控制。
status=0
能为我提供各种各样的东西,而且不知道更多关于如何达到这一点的信息,要确定它到底意味着什么是非常困难的。您可能正在使用iframe,另一台计算机可能真的会告诉您状态为0 ...我们不知道。
一般的规则是,它并不重要,其中JS是,它将执行它的加载数据。这就是Google js归档api的可能性(你知道,在各种不同的地点使用https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.js
)。说实话,这不是一个安全问题。
当js文件尝试访问另一个域(甚至是子域)时(无论是通过处理iframe还是通过XMLHTTPRequest),都会出现安全问题。正是在这个时候,浏览器才会在脚本上“打下马脚”。
因为这个原因,从硬盘驱动器(file:///)到任何Internet协议(http | https)的JavaScript通信都会遇到困难。
您可以使用CORS。您可以使用现在使用的相同的代码,但是您通过ajax请求页面的另一台服务器必须在该页面上发送以下标题:
Access-Control-Allow-Origin: http://yoursite.example.com
#or to allow all hosts
Access-Control-Allow-Origin: *
这不是一个愚蠢的问题。 ;-)几天前我也问过自己。 –