2

我正在开发一个需要访问某个远程 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

4

2 回答 2

2

你在这里缺少一个功能。

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

另外,去掉结尾的逗号。

于 2012-08-03T20:51:28.527 回答
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');
    }
});
于 2012-08-03T20:54:55.410 回答