解决跨域相关!

已邀请:

xiaosong

赞同来自: ohkei elfhuv

跨域问题分为两种:一种是文件请求跨域,一种是数据请求跨域;
1、文件请求跨域的解决方法有两种,一种是上面同事说的,此种方法只能解决本地调试的问题,无法解决其他主机存在的跨域问题,想彻底解决文件跨域问题,需要修改webServer(一般webserver大多数都是 apache、nginx、tomcat等),在请求特定的域名下加上跨域标识,这里以nginx为例:
http {
  ......
  add_header Access-Control-Allow-Origin *;
  add_header Access-Control-Allow-Headers X-Requested-With;
  add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
  ......
}
这样就可以实现GET,POST,OPTIONS的跨域请求的支持
也可以 add_header Access-Control-Allow-Origin http://www.layabox.com; --指定允许的url;
2、数据请求跨域需要后端语言配合修改,在请求里加上header标识,这里以php语言为例:
header("Access-Control-Allow-Origin: *");不一定用*,*是允许所有的主机跨域访问,你也可以写指定域名下的主机可以访问;

cuixueying

赞同来自: shenzhe charley

由于浏览器本身默认的是不允许文件跨文件读取的,会涉及到跨域的问题。
通过添加启动参数可以解决跨域问题。
在chrome浏览器快捷方式->右击打开属性->快捷方式一栏->目标末尾添加 --allow-file-access-from-files
打开快捷方式,将转换后自动生成的html文件拖拽至chrome浏览器即可正常显示。
 

layaFlash - LayaFlash为Flash程序员而生

赞同来自: charley a365571557

即将推出新的LayaFlash工具,集成运行器调试环境

mingchaoyan

赞同来自:

mac 用户可在ide上用二维码打开
嗯,虽然麻烦点,但是勉强可用
1.7.7

taisss

赞同来自:

mac用户直接用Safari, 本地调试没有跨域烦恼!

aidimiebear

赞同来自:

前段时间我用laya做了一个联网的游戏,涉及了跨域的问题,我的服务端用的skynet,http服务也是用的skynet提供的http例子自己做的扩充,我的解决方案是在服务端做了处理,在返回数据时添加了个附加参数,例如这样,  response(id, code, result, {["Access-Control-Allow-Origin"]="*"})     希望对用skynet做服务端http的朋友有帮助。如果是apache或者nginx的话也是可以在服务端返回的时候加上这样类似的参数,不过如果是正式环境的话,最好不要用*,会留下漏洞的。

xiaosong

赞同来自:

谢谢!

CrossCrush

赞同来自:

Mac下可使用命令行打开chrome,记住先关闭当前chrome窗口。
 
open -a /Applications/Google\ Chrome.app --args --disable-web-security --user-data-dir

180*****197

赞同来自:

问一下 "在request header加上Origin" 是个什么写法

要回复问题请先

商务合作
商务合作