Be_Human
Be_Human
  • 发布:2015-08-06 21:42
  • 更新:2018-06-27 15:44
  • 阅读:2538

mui.ajax请求的时候 not acceptable,但是XMLHttpRequest和jquery.ajax却可以响应

分类:MUI

这个是什么问题呢,mui不是封装的h5+的吗,大家帮我测试下这个地址
http://api.juheapi.com/japi/toh
直接通过网页或者 jqeury 或 用XMLHttpRequest,在不传入参数的时候,返回的是 {"error_code":10001,"reason":"错误的请求KEY"},但是用mui.ajax 就是 not acceptable 了

2015-08-06 21:42 负责人:无 分享
已邀请:
Be_Human

Be_Human (作者)

就没一个人回复个吗

  • Be_Human (作者)

    人工置顶

    2015-08-07 13:08

Be_Human

Be_Human (作者)

人工置顶

DCloud_UNI_FXY

DCloud_UNI_FXY

我这里测试没有问题,同样返回{"error_code":10001,"reason":"错误的请求KEY"}

贴你的测试代码,说明测试环境(手机型号,系统版本,mui版本,网络类型)

  • Be_Human (作者)

    对不起,我错了,我找到问题所在了,我之前把dataType设为json了,dataType删掉以后也可以获取了,但是dataType只是设置的返回数据类型吧,设置错了也会造成 Not Acceptable 这个问题吗

    2015-08-07 16:12

  • DCloud_UNI_FXY

    回复 Be_Human:当设置dataType后,我们会为request的Header的Accept设置mime

    2015-08-07 17:09

无名网客

无名网客

我也出现这个问题。
解决方案如下:dataType: "json", 去掉后就没有问题了。
请官方关注下。

  • DCloud_UNI_FXY

    排查你服务端返回的response的content-type

    2015-08-16 15:29

3***@qq.com

3***@qq.com - 80后IT男

经过测试,写个完整的解释:”解决方案如下:dataType: "json", 去掉后就没有问题了。” 这个确实也解决了我的问题。后又经过测试,得出结论如下:
直接在浏览器中请求,没有问题。这时可以打开调试工具(如谷歌的浏览器调试工具),利用工具中的网络请求捕捉可以看到:响应头为:Content-Type: text/html 这就是问题的根源。如果mui.ajax 中dataType: "json" 就认为类型不匹配。去掉了就没问题只说明mui.ajax默认的接收类型是text/html ;可以将dataType: "html" 也可以正常访问。源头一般是后台使用了spring mvc 的@responseBody注解返回json数据,猜测设置的响应头为:Content-Type: text/html 。而一般自己通过response.getWriter方法手动输出json的,会设置Content-Type: text/text 就不会出现上面的问题。

该问题目前已经被锁定, 无法添加新回复