这几天用白鹭引擎做游戏开发的时候用到了白鹭自带的HTTP请求API发现在请求自己的阿里云服务器的时候,API始终返回IOError错误,网上找了很多资料,也没有一个正面的回答.最后自己一遍遍尝试,终于发现.原来是服务器跨域的问题.

例如使用:

var request = new egret.HttpRequest(); request.responseType = egret.HttpResponseType.TEXT;
request.open(“http://www.fgreen.org”,egret.HttpMethod.GET);
request.setRequestHeader(“Content-Type”, “application/x-www-form-urlencoded”);
request.send();
request.addEventListener(egret.Event.COMPLETE,this.onGetComplete,this);
request.addEventListener(egret.IOErrorEvent.IO_ERROR,this.onGetIOError,this);
request.addEventListener(egret.ProgressEvent.PROGRESS,this.onGetProgress,this);

使用上面的代码进行http访问http://www.fgreen.org域名,假如此域名的服务器没有允许跨域访问,则白鹭的API会返回IO_ERROR错误也就是会执行this.onGetIOError函数.

这个时候就要修改服务器的配置比如在nginx服务器上:

Linux下找到nginx的配置文件然后用VI编辑器编辑它.

vi /etc/nginx/nginx.conf

加入如下代码

http {
  ###start####
  add_header Access-Control-Allow-Origin *;
  add_header Access-Control-Allow-Headers X-Requested-With;
  add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
  ###end ###
}

:wq!保存

service nginx restart 重启nginx即可。

在apache服务器上如下配置:

1.首先找到 httpd.conf 文件

找到 #LoadModule headers_module modules/mod_headers.so

把#注释符去掉(也有可能已经默认去掉了)

目的是开启apache头信息自定义模块

2.找到你的虚拟主机文件 注意是被跨域的网站的 具体内容是这样的文件


<Directory "E:/laragon/www/(你的本地地址)">AllowOverride AllRequire all granted
</Directory>

然后在这段内容里面加上如下:

对所有域名开放

Header set Access-Control-Allow-Origin * (这样加上一行)

对指定域名开放

Header set Access-Control-Allow-Origin http://www.***.com (或者这样加上一行)

OK,跨域问题搞定

egret踩坑,http请求返回IOError问题解决相关推荐

  1. 首次使用windows10安装DB2_10.5数据库踩坑全教程,附加问题解决目录思路汇总

    新入职的IBM,需要安装IBM的数据库DB2,搞了两天踩坑全教程,下面是踩坑说明. DB2是IBM的数据库,官网说明是这个网址: IBM DocsIBM Documentation.https://w ...

  2. Ajax请求SSM后台传值方式踩坑

    场景 在Ajax请求接口返回结果后,再次请求后台Controller.原来代码 $("#book").submit(function() {if($(this).Andrew_Va ...

  3. uc浏览器请求被拦截报跨域踩坑记录

    记录下开发时uc浏览器请求被拦截时遇到的问题 请求在uc浏览器出现跨域问题 app使用uniapp开发,使用plus.runtime.launchApplication来打开并跳转指定页面,并在Xco ...

  4. spring配置CORS后未返回Access-Control-Allow-Origin的踩坑解决

    一.配置方式   在 Spring 框架下解决 CORS 问题,前面试了两种方法,发现在一种场景下,HTTP Response header 始终未应答 Access-Control-Allow-Or ...

  5. 踩坑 :vue2 ajax异步请求数据,层数太多,页面无法渲染

    刚接触vue2不是太久,勉强算是小白一枚吧,在此分享一下我最近踩的一个坑,望以后的小白们借鉴: 首先,数据结构: data(){ return { outer: { mid: [{ inner: &q ...

  6. Egret 生成 自带EUI 的微信小游戏 踩坑!

    1. 首先,再次被网上一大堆屎一样的资料搞得浪费了我一天时间.各种坑. 2. 本文先讲一种正确的方式,然后再列举坑. 去www.egret.com下载最新的引擎,我的最新版本是5.2.2. 然后就会被 ...

  7. Mint-UI框架router-link返回上一页的方法 - 踩坑篇

    使用mint-ui框架的header导航组件,<router-link to="">如何实现点击返回上一页? 代码如下: <template><!-- ...

  8. 微信公众号开发踩坑指南(3)——公众号返回超链接点击跳转并自动关闭

    前段时间产品提了一个听起来很奇葩的需求,其实做起来也感觉很奇葩. 公众号在触发某些事件后,返回给用户具体的文案回复,但这个文案回复需要带超链接的,在用户点击超链接之后做一些CURD操作并改变改用户的状 ...

  9. 微信支付『支付失败,如果已扣款,资金在0-3个工作日原路返回』踩坑案例及解决方案

    微信支付『支付失败,如果已扣款,资金在0-3个工作日原路返回』踩坑案例及解决方案 参考文章: (1)微信支付『支付失败,如果已扣款,资金在0-3个工作日原路返回』踩坑案例及解决方案 (2)https: ...

最新文章

  1. python 把集合转成字典的方法
  2. 《C++ Primer》7.3.2节练习
  3. wxpython可视化_使用wxPython的绘图模块wxPyPlot进行数据可视化
  4. Sona(NBUT-1457)
  5. 95-170-044-源码-Time-flink时间Processing Time源码分析
  6. 理解asp.net中DropDownList编辑数据源,绑定数据库数据。
  7. 《信息安全程序设计基础》第零周学习总结
  8. 操作系统实验一linux,操作系统实验一 Linux基本操作.doc
  9. 067、如何部署Calico网络 (2019-04-10 周三)
  10. C语言制作小游戏——贪吃蛇
  11. 项目整体管理:实施整体变更控制
  12. 我在Facebook工作的十大经验分享
  13. 中序线索化二叉树的遍历
  14. ImportError: /usr/local/lib/python3.7/dist-packages/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so: unde
  15. 给Rstudio修改背景和字体等设置教程
  16. WIN7 64位系统安装CodeWarrior 6.3及BDM驱动
  17. SQL修改表字段名称及结构
  18. eps文件_如何编辑eps文件?
  19. 中大华工计算机分数,中大华工部分专业分数线猛涨
  20. 【数学建模、美赛】MCM/ICM指南

热门文章

  1. 常用java代码质量检查工具.md
  2. Linux项目车牌识别-imx6ull芯片
  3. IOS开发之----资源汇总
  4. 【精华】光纤项目系统概述
  5. 航班售票系统设计与实现
  6. 嵌入式Linux开发-6818开发板使用流程
  7. 学会System Generator(10)支持的MATLAB语法
  8. JAVA核心技术(2)IO
  9. Java如何利用JNI调用C++(简略介绍及步骤)
  10. GD32E103STM32F103AT89S51DSP2812开发板原理图