Uncaught SyntaxError: Unexpected token < in chrome 控制台

Posted

技术标签:

【中文标题】Uncaught SyntaxError: Unexpected token < in chrome 控制台【英文标题】:Uncaught SyntaxError: Unexpected token < in chrome console 【发布时间】:2017-07-14 20:22:32 【问题描述】:

我正在尝试进行 Ajax 调用以访问 Web 服务并获得响应。但在 google chrome 控制台中出现未捕获的语法错误:意外令牌

$(document).ready(function()
    $.ajax(
       url:"http://10.10.1.5:8089/axis2/services/cmtlpmservice/getAllMonitors",
       dataType:"jsonp",
       jsonpCallback:"callback",
       type:"GET",
       success:function(response)
           console.log(response);
       
    );
);

请求头如下:

请求网址:http://10.10.1.5:8089/axis2/services/cmtlpmservice /getAllMonitors?callback=callback&_=1487912464838 请求方法:GET 状态码:200 OK 远程地址:10.10.1.5:8089

接受:/ 接受编码:gzip、deflate、sdch 接受语言:en-US,en;q=0.8 授权:基本 YWRtaW46 缓存控制:max-age=0 连接:保持活动 主机:10.10.1.5:8089 用户代理:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/53.0.2785.116 Safari/537.36

响应头如下:

缓存控制:无缓存 内容类型:应用程序/xml;charset=UTF-8 日期:格林威治标准时间 2017 年 2 月 24 日星期五 05:01:05 过期:星期四,1970 年 1 月 1 日 10:00:00 EST Pragma:无缓存 服务器:Apache-Coyote/1.1 传输编码:分块 X-Powered-By:Servlet 2.5; JBoss-5.0/JBossWeb-2.1

响应看起来像:

<ns:getAllMonitorsResponse xmlns:ns="ws.core.dorado.com">
 <ns:return> 

    "monitors": [
        "id": "com.dorado.broadscope.monitor.Monitor::R‌​GNEXGvol54w2a#_1.3.6‌​.1.4.1.20138.800.20.‌​12.1.9.1",
        "maxAttrNa‌​me": "ifTemperatureVa‌​lue Max",
        "name": "ifTemperatureValue",
        "minAttrName": "ifTemperatur‌​eValue Min",
        "maxAttrId": "com.dorado.broadscope.monitor.Monitor::RGN‌​EXGvol54w2a#_1.3.6.1‌​.4.1.20138.800.20.12‌​.1.9.1Max",
        "minAttrI‌​d": "com.dorado.broad‌​scope.monitor.Monito‌​r::RGNEXGvol54w2a#_1‌​.3.6.1.4.1.20138.800‌​.20.12.1.9.1Min"
    ]


 </ns:return> 
</ns:getAllMonitorsResponse>

【问题讨论】:

我怀疑您的网络服务没有返回有效的 JSON 响应。 这就是我的响应的样子:ws.core.dorado.com"> "monitors":["id":"com.dorado .broadscope.monitor.Monitor::RGNEXGvol54w2a#_1.3.6.1.4.1.20138.800.20.12.1.9.1","maxAttrName":"ifTemperatureValue Max","name":"ifTemperatureValue","minAttrName":"ifTemperatureValue Min" ,"maxAttrId":"com.dorado.broadscope.monitor.Monitor::RGNEXGvol54w2a#_1.3.6.1.4.1.20138.800.20.12.1.9.1Max","minAttrId":"com.dorado.broadscope.monitor.Monitor: :RGNEXGvol54w2a#_1.3.6.1.4.1.20138.800.20.12.1.9.1Min"] 响应 body 是什么样的?您只显示了标题。 我支持@scoota269 - 您的服务器最有可能使用常规网页进行响应 @PallaviSarawgi 不仅不是 JSON,也不是 JSONP(您的 jsonp 请求需要它才能工作) 【参考方案1】:

由于 getAllMonitors 中的一些错误,它在 response 中返回 json deta 的整个 html 页面。你的控制器是你的ajax的罪魁祸首。

【讨论】:

以上是关于Uncaught SyntaxError: Unexpected token < in chrome 控制台的主要内容,如果未能解决你的问题,请参考以下文章

Uncaught (in promise) SyntaxError: Unexpected end of JSON input error

面对“Uncaught SyntaxError: Unexpected token ''”

Uncaught SyntaxError: Invalid shorthand property initializer

Webpack Babel 加载错误 - Uncaught SyntaxError: Unexpected token import [重复]

Uncaught SyntaxError: Invalid shorthand property initializer

解决 Uncaught SyntaxError: Unexpected token ‘<‘ 问题的一个方法