首页 新闻 搜索 专区 学院

服务端接收不到ajax发送的数据+跨域问题?

0
悬赏园豆:50 [已解决问题] 解决于 2018-04-25 14:52

先说下基础信息:首先是局域网内两台电脑,一台做前端,一台服务端,服务端用的ssh,前端用ajax方式请求,出现了跨域问题,之后使用在服务端struts2的action中加response.setHeader("Access-Control-Allow-Origin", "*");的方式解决跨域问题,但解决跨域后仍是接收不到数据(另外,做过测试,前后端都在同一个电脑上的话即使chrome控制台有报跨域的错也能收到数据),麻烦谁告知下怎么回事

另附上chrome的请求信息

数据挖掘新手的主页 数据挖掘新手 | 初学一级 | 园豆:157
提问于:2018-04-25 10:43
< >
分享
最佳答案
0

可以参考这篇文章: http://www.ruanyifeng.com/blog/2016/04/cors.html

浏览器在处理cors跨域请求的时候,如果发现包含content-type,就会发起一个预检请求,所以你要做的是在对应的地址里,对“OPTIONS”请求做一个处理,返回包含“Access-Control-Allow-Headers: Content-Type”的报文头,这样预检通过,就会发起正式的请求。

收获园豆:50
守望雲影 | 初学一级 |园豆:32 | 2018-04-25 14:51
其他回答(3)
0

建议看一下Response中响应内容是否正确

dudu | 园豆:38908 (高人七级) | 2018-04-25 11:16

怎么看?我上面附的图就包含了response的header了,也尝试过很多关于跨域的设置,但是跨域不报错了,服务端action还是接收不到值

支持(0) 反对(0) 数据挖掘新手 | 园豆:157 (初学一级) | 2018-04-25 11:19

@数据挖掘新手: 点击上图中的Response tab

支持(0) 反对(0) dudu | 园豆:38908 (高人七级) | 2018-04-25 11:28
0

ajax的header里把ContentType设置为application/json 试试

Ace001 | 园豆:214 (菜鸟二级) | 2018-04-25 11:16

一开始就是application/json,不行,后来注释掉这个也不行

支持(0) 反对(0) 数据挖掘新手 | 园豆:157 (初学一级) | 2018-04-25 11:18

@数据挖掘新手: 

这个要看你后台获取tripAddr的方式,application/json需要用stream方式去读取

支持(0) 反对(0) Ace001 | 园豆:214 (菜鸟二级) | 2018-04-25 11:20

@Ace001: 用的最常见的request.getParameter();谢谢你

支持(0) 反对(0) 数据挖掘新手 | 园豆:157 (初学一级) | 2018-04-25 11:22

@数据挖掘新手: 

参见这个文章:https://www.cnblogs.com/wanglee/archive/2013/01/16/2862269.html

支持(0) 反对(0) Ace001 | 园豆:214 (菜鸟二级) | 2018-04-25 11:25
0
ycyzharry | 园豆:21971 (高人七级) | 2018-04-25 13:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册