先说下基础信息:首先是局域网内两台电脑,一台做前端,一台服务端,服务端用的ssh,前端用ajax方式请求,出现了跨域问题,之后使用在服务端struts2的action中加response.setHeader("Access-Control-Allow-Origin", "*");的方式解决跨域问题,但解决跨域后仍是接收不到数据(另外,做过测试,前后端都在同一个电脑上的话即使chrome控制台有报跨域的错也能收到数据),麻烦谁告知下怎么回事
另附上chrome的请求信息
可以参考这篇文章: http://www.ruanyifeng.com/blog/2016/04/cors.html
浏览器在处理cors跨域请求的时候,如果发现包含content-type,就会发起一个预检请求,所以你要做的是在对应的地址里,对“OPTIONS”请求做一个处理,返回包含“Access-Control-Allow-Headers: Content-Type
”的报文头,这样预检通过,就会发起正式的请求。
建议看一下Response中响应内容是否正确
怎么看?我上面附的图就包含了response的header了,也尝试过很多关于跨域的设置,但是跨域不报错了,服务端action还是接收不到值
@数据挖掘新手: 点击上图中的Response
tab
ajax的header里把ContentType设置为application/json 试试
一开始就是application/json,不行,后来注释掉这个也不行
@数据挖掘新手:
这个要看你后台获取tripAddr的方式,application/json需要用stream方式去读取
@Ace001: 用的最常见的request.getParameter();谢谢你
@数据挖掘新手:
参见这个文章:https://www.cnblogs.com/wanglee/archive/2013/01/16/2862269.html