首先说一下个人理解的跨域:
1)跨域限制只在客户端,服务器端是不存在的;
2)表单不存在跨域限制,而JS提交参数存在跨域限制,这也是目前很多网站的登录不用表单提交的一个重要原因。试想一下,如果CSDN登录页面被人植入了JS,它将用户提交的用户名跟密码通过跨域提交到植入者的网站,那...
3)script src,img src iframe src不存在跨域拦截,所以正常跨域需求可以用iframe解决。
重点是第二个,大家说说自己的想法?

解决方案 »

  1.   

    1:服务器端的跨域请求,难道你不做过滤也照常执行?
    2:不用表单做登录,服务器端照样必须有一个数据处理,这又回到了1了
    3:script,img,iframe都照样有的,script,img一个简单的来源请求判断即可将你拒之门外。至于iframe
    一条简单的if (top.location != self.location)top.location=self.location照样可以令其失效所以,如果你是指拥有者是同一个人的话,当然可以放宽,但请求的要是都是其他拥有者的数据,这个,基本上跨域就无处不在了,看你怎么理解了。重点当然还是基于安全性
      

  2.   

    谢谢楼上解答,
    1)我的意思是客户端被浏览器限制,而服务器端不会被服务器限制(非人为),过滤就另说了
    2)我2的意思是如果被植入JS,JS让表单跨域提交(表单跨域浏览器不限制),账户不就泄露了吗?
    3)我3的意思是那几个标签默认不会被浏览器跨域拦截。
      

  3.   

    提交数据来说,js大概有3个方法
    1)ajax,这个不允许跨域
    2)window.open页面,这个不存在跨域问题,只存在拦截
    3)js控制能和服务器通信的html标签跨域提交数据上面2,3中方法只有被植入js代码才能实现,CSDN没蠢到被植入js代码吧,哈哈。归结来说就是看程序是否健壮了,和跨域没什么关系然后就是不同域下的窗体对象【window.open的窗体,iframe,frameset等的窗体】,js无法相互操作对方
      

  4.   

    试过静态html页面向自己的服务器发ajax请求(有传递地址栏参数,有传递params参数),没有问题
    试过向百度之类网站发ajax请求(没有传递参数),没有问题