2010-06-14 54 views
33

我有服务器A(www.example.com)发送信息到服务器B.我只能在服务器A上的HTML/JS(并且必须在服务器B上执行“运算”),所以我试图发送表单数据通过AJAX(试图避免表单发送到服务器B - 不要问)。是否将AJAX调用到跨域脚本的子域?

很明显,做一个AJAX调用跨域被认为是XSS和一个很大的禁忌,但如果我把服务器B放在一个子域(sub.example.com),那会不会被认为是好的?如何检测跨域错误?浏览器是否查找DNS记录? IP地址?

在此先感谢您的帮助。

+0

同源策略主要是为了避免CSRF(http://en.wikipedia.org/wiki/Cross-site_request_forgery),并有助于减轻可能的XSS攻击的影响。 – 2010-06-14 20:25:19

回答

37

子域被认为是不同的,并且将失败Same Origin Policy,除非两个子域声明相同的document.domainDOM属性(即使这样,不同的浏览器行为不同)。

6

简短的回答:没有。见Same Origin Policy

你只能一个XHR请求到同一台主机,端口和协议。

如果您不想坚持使用Ajax,您可以查看JSON-P。 (XSS是一个完全不同的水壶,其中一个站点允许数据被注入到它(例如通过URI),被视为JS,允许第三方将人员引导到您的站点,而他们被记录进入它并窃取或编辑数据。)