起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6109|回复: 12

[结贴] AJAX跨域报错

[复制链接]

59

主题

274

帖子

1178

积分

金牌会员

Rank: 6Rank: 6

积分
1178
QQ
发表于 2017-8-12 10:54:07 | 显示全部楼层 |阅读模式
本帖最后由 wangjikuen 于 2017-8-12 11:04 编辑

我在参考了http://docs.wex5.com/ajax-cross-domain/这个链接之后,由于必须使用POST访问的方式,因此我使用了CORS的方案,在$AJAX之外添加了 $.support.cors = true;在$ajax之内,添加了
xhrField: {
withCredentials: true
},
crossDomain: true,

以及 另一台机器架设的JAVA服务器中,添加了
response.setHeader(“Access-Control-Allow-Origin”, “http://192.168.1.34:8080”);
我的本机地址为192.168.1.34。服务器架设在另一台计算机上
在使用谷歌浏览器本地调试的时候,报网络错误 网络出错  编码:JUSTEP230109  
基本思想应该是因为带COOKIES传送的问题,我测试过,在不需要验证COOKIES的地址中,直接就成功返回值了,但我的AJAX中,已经带了xhrField: {
withCredentials: true
},
crossDomain: true,
那为什么会不成功呢?
随后我查阅netbook 的response,发现服务器返回的值已经返回回来了
但是为什么AJAX会直接进入error,没有进source中,sourse没值,error有错误
求教各位,这种问题是什么导致的,如何解决,谢谢!

15

主题

67

帖子

322

积分

中级会员

Rank: 3Rank: 3

积分
322
QQ
发表于 2018-3-19 08:43:41 | 显示全部楼层
不用这么麻烦,后台用cors-fileter就能实现跨域了,前端啥都不需要改
回复 支持 1 反对 0

使用道具 举报

59

主题

274

帖子

1178

积分

金牌会员

Rank: 6Rank: 6

积分
1178
QQ
 楼主| 发表于 2017-8-13 08:09:07 来自手机 | 显示全部楼层
调试一天,发现了一个解决方案,就是使用命令强制开启浏览器呢ajax跨域允许,3.7平台自带的,以及别的浏览器在不执行这个方案的时候,都是不能够正确跨域的,那么我想知道,打包安卓app的时候,哪个内核是默认开启跨域的呢?谢谢
回复 支持 反对

使用道具 举报

发表于 2017-8-14 15:13:06 | 显示全部楼层
wangjikuen 发表于 2017-8-13 08:09
调试一天,发现了一个解决方案,就是使用命令强制开启浏览器呢ajax跨域允许,3.7平台自带的,以及别的浏览 ...

可以上网搜下资料
http://blog.csdn.net/super_spy/article/details/52766411

修改打包的模板资源试试吧!

类似的一个问题!
http://bbs.wex5.com/forum.php?mo ... 2&pid=165463830

他也是修改java模板解决的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

59

主题

274

帖子

1178

积分

金牌会员

Rank: 6Rank: 6

积分
1178
QQ
 楼主| 发表于 2017-8-15 15:22:23 | 显示全部楼层
liangyongfei 发表于 2017-8-14 15:13
可以上网搜下资料
http://blog.csdn.net/super_spy/article/details/52766411

两种方法都试了,并不能解决实际问题,已经实际测试过,打包后的APP,在真机运行时,执行到了AJAX的位置的时候,会直接跨域错误,说明打包的浏览器默认是做了禁止跨域的操作的,除了代理服务器外,请问版主还有别的好的办法吗?JSONP不用说了,不能执行POST。
回复 支持 反对

使用道具 举报

发表于 2017-8-16 11:40:00 | 显示全部楼层
wangjikuen 发表于 2017-8-15 15:22
两种方法都试了,并不能解决实际问题,已经实际测试过,打包后的APP,在真机运行时,执行到了AJAX的位置 ...

跨域问题的解决!请参考
http://docs.wex5.com/wex5-ui-question-list-2187
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

59

主题

274

帖子

1178

积分

金牌会员

Rank: 6Rank: 6

积分
1178
QQ
 楼主| 发表于 2017-8-16 16:22:18 | 显示全部楼层
liangyongfei 发表于 2017-8-16 11:40
跨域问题的解决!请参考
http://docs.wex5.com/wex5-ui-question-list-2187

结帖吧,前端不能解决POST跨域问题,解决了,也没用,打包的时候,提供的几种内核的浏览器默认的跨域命令都是关闭的,原则上来说,我们大概相当于使用安卓的Webview控件,而打包的时候,我们封装进APP的浏览器的跨域允许开启状态是不可控制的。所以,基本上跨域问题只能通过自己设置代理服务器解决,让纯客户端的APP变成了需要另外搭建服务端的应用,降低了应用执行效率提高了成本。请把我的问题提交一下,看看能否纯粹的在前端解决跨域问题,让WEX5对后端设计的要求降低一点,毕竟,wex5定位是H5 APP前端快速开发框架,如果不能解决跨域,全部都依赖于后端的话,名不副实了
回复 支持 反对

使用道具 举报

发表于 2017-8-16 17:54:24 | 显示全部楼层
wangjikuen 发表于 2017-8-16 16:22
结帖吧,前端不能解决POST跨域问题,解决了,也没用,打包的时候,提供的几种内核的浏览器默认的跨域命令 ...

你好楼主,已作为产品功能建议提交(内部编号:2017081600022),感谢楼主的支持与配合。
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

59

主题

274

帖子

1178

积分

金牌会员

Rank: 6Rank: 6

积分
1178
QQ
 楼主| 发表于 2017-8-17 11:17:28 | 显示全部楼层
liangyongfei 发表于 2017-8-16 17:54
你好楼主,已作为产品功能建议提交(内部编号:2017081600022),感谢楼主的支持与配合。 ...

最简单的办法是提高打包浏览器的版本,这个应该不太难,我查阅了资料,IE从11开始支持,支持最好的是openmini,几乎全系支持,而我们使用的Chrome浏览器,从49版本向后,就全部支持Cors技术了。
版主能提供一下自定义设置打包浏览器的方法吗?
回复 支持 反对

使用道具 举报

发表于 2017-8-17 16:39:00 | 显示全部楼层
wangjikuen 发表于 2017-8-17 11:17
最简单的办法是提高打包浏览器的版本,这个应该不太难,我查阅了资料,IE从11开始支持,支持最好的是open ...

没提供方法! 只提供了3中选择!没提供自定义方法!
你好楼主,这个特性目前版本不支持,已作为产品功能建议提交(内部编号:2017081700005),感谢楼主的支持与配合。
P8_8JXO@34)6AR}K2NBP[QU.png
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

3

主题

304

帖子

798

积分

高级会员

Rank: 4

积分
798
QQ
发表于 2017-11-10 15:51:52 | 显示全部楼层
wangjikuen 发表于 2017-8-17 11:17
最简单的办法是提高打包浏览器的版本,这个应该不太难,我查阅了资料,IE从11开始支持,支持最好的是open ...

先把工程生成出来,然后去修改原生部分的代码,可以模仿:build/src/platforms/android/CordovaLib/src/org/apache/cordova/engine/下面的文件实现一个新的webview引擎,也可以在上面进行修改为自己webview实现
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-9-28 07:28 , Processed in 0.066871 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表