使用jQuery访问远程Web服务

时间:2012-08-03 20:49:18

标签: jquery web-services jsonp

我正在开发一个需要访问某个远程Web服务的移动应用程序。我正在使用jQuery.ajax(),并且由于相同的原始策略,我被迫使用JSONP执行我的请求。 我的客户请求是这样的:

$.ajax({
    type: "GET",
    url: "http://www.foo.jws/bar",
    contentType: "application/json; charset=utf-8",
    data: {},
    dataType: 'jsonp', 

    success: function(msg) {
       console.log(msg);
    },
    error: function() {
      console.log('error');
    }

});

我一直收到的错误是“Uncaught SyntaxError:Unexpected identifier”

我做错了什么?

编辑: WS中的数据是XML格式

2 个答案:

答案 0 :(得分:2)

你在这里缺少一个功能。

error: function() {
    console.log('error');
}

另外,取出尾随的逗号。

答案 1 :(得分:0)

您的错误回调代码不正确。我不确定这只是因为你在这里输入代码,或者复制/粘贴它。应该是:

error: function (jqXHR, textStatus, errorThrown) {
    console.log('error');
}

然后,您可以从出现在错误回调中的参数中获取有关调用内容的更多信息。

编辑:好的,既然您从服务器获取XML,则需要将dataType从jsonp更改为xml。 dataType选项告诉jQuery返回时期望的数据类型。

$.ajax({
    type: "GET",
    url: "http://www.foo.jws/bar",
    contentType: "application/json; charset=utf-8",
    data: {},
    dataType: 'xml', 
    success: function(msg) {
       console.log(msg);
    },
    error: function() {
      console.log('error');
    }
});