未捕获的SyntaxError:意外的令牌<在Javascript中调用外部Web服务时出错

时间:2014-07-31 08:19:42

标签: javascript jquery web-services

我尝试从Weather.asmx Web服务调用GetCityWeatherByZIP并获取未捕获的SyntaxError:意外的令牌< 错误。 任何人都可以就此问题提出建议吗?

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
        <script type="text/javascript">

$(document).ready(function () {
               $.ajax({
                   type: "GET",
                   dataType: 'jsonp',  
                   url: "http://wsf.cdyne.com/WeatherWS/Weather.asmx/GetCityWeatherByZIP",
                   data:{ZIP: 10007},
                   success : function(jsonp) {
                       alert (jsonp);
                   }
               });
           });
            function processSuccess(response) { alert('success');
            }

            function processError(data) {
            alert('err'+data);
                //alert(req.responseText + " " + status);
            } 

        </script>
    </head>
    <body>
       <input id="btnCallWebService" value="Call web service" type="button" />
        <div id="response" ></div>
    </body>

2 个答案:

答案 0 :(得分:2)

您告诉jQuery将响应作为JSONP处理,但Web服务正在返回XML。

JSONP通过加载JavaScript程序(带有嵌入数据)来工作,而你得到的错误是因为XML以<开头,而{{1}}不是可以启动JavaScript程序的字符。

将您的请求更改为期望XML或更改Web服务以使用JSONP进行响应。

答案 1 :(得分:-1)

webservice返回XML响应,您尝试将其解析为JSONP