ajax返回有数据但走error(已解决,是因为我直接打开的静态页面,相当于打开本地文件,所以会出现跨域)

后端说不允许设置跨域,所以将java代码打包发给我,解压后的目录结构

clipboard.png

我将静态文件放入web文件夹中,然后在html里面编写ajax,发现返回有数据,但是ajax走的error,返回的结果是json没错,我ajax里面dataType不写或者写成text,json都不行。

返回的数据如下:

{"code":"ok","data":{"a_stat_list":[{"sum_reg":"83","hour":"10","sum_acc":"12"},{"sum_reg":"24","hour":"11","sum_acc":"25"},{"sum_reg":"73","hour":"12","sum_acc":"89"},{"sum_reg":"66","hour":"18","sum_acc":"74"}],"a_reg_list":[{"url_avatar":"/img/face.png","reg_time":"2019-07-26 09:08:19","name":"张三0","idnum":"440683199999999910"},{"url_avatar":"/img/face.png","reg_time":"2019-07-26 09:08:19","name":"张三9","idnum":"440683199999999919"}],"a_acc_list":[{"acc_time":"2019-07-26 09:08:20","acc_by":"DAC300","url_avatar":"/img/face.png","name":"张三0","idnum":"440683199999999910"},{"acc_time":"2019-07-26 09:08:20","acc_by":"DAC301","url_avatar":"/img/face.png","name":"张三1","idnum":"440683199999999911"},{"acc_time":"2019-07-26 09:08:20","acc_by":"DAC305","url_avatar":"/img/face.png","name":"张三5","idnum":"440683199999999915"},{"acc_time":"2019-07-26 09:08:20","acc_by":"DAC306","url_avatar":"/img/face.png","name":"张三6","idnum":"440683199999999916"},{"acc_time":"2019-07-26 09:08:20","acc_by":"DAC307","url_avatar":"/img/face.png","name":"张三7","idnum":"440683199999999917"},{"acc_time":"2019-07-26 09:08:20","acc_by":"DAC308","url_avatar":"/img/face.png","name":"张三8","idnum":"440683199999999918"},{"acc_time":"2019-07-26 09:08:20","acc_by":"DAC309","url_avatar":"/img/face.png","name":"张三9","idnum":"440683199999999919"}]}}

ajax走error打印的结果如下

clipboard.png

阅读 2.4k
2 个回答

跨域了,搜索“CORS”。

虽然静态资源放在后端服务里,但是用了Ajax还是相当于前后端分离的,发起Ajax请求是用户的浏览器,所以还是违背了同源策略,所以前后端分离必须设置跨域。还有走error回调,十有八九是请求信息没拼凑正确,注意dataType和Content-Type请求头。

 response.setHeader("Access-Control-Allow-Origin", "*");
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进