0

我正在尝试发出以下 jQuery AJAX JSONP 请求:

$.ajax({
    type: "GET",
    url: apiUrl + currentType + "/" + $(this).val() + "/" + nextType + ".json?jsoncallback=?",
    dataType: "jsonp",
    success: function (data) {
        console.log(jQuery.parseJSON(data))
    },
    error: function (reqObj, textStatus, error) {
        console.log(textStatus, error)
    }
});

成功函数永远不会运行,这是该error函数记录的数据:

parsererror, message: "jQuery17205679343591909856_1334681898332 was not called"

我不知道为什么这不起作用...

4

1 回答 1

0

因此,经过一些配置更改(在 API 端),我能够找出我的问题。

首先,为了在 API 端快速生成 JSON 响应,我使用了 Rails 的 RABL gem。我在应用程序的初始化程序中包含了配置示例(https://github.com/nesquena/rabl)。来自 Github:

如果 include_json_root 被禁用,则删除输出中每个子节点的根节点,如果传入请求具有“回调”参数,则 enable_json_callbacks 启用对“jsonp”样式回调输出的支持。

然后,这是我的 jQuery(在客户端消费者端):

$.ajax({
            url: apiUrl + currentType + "/" + $(this).val() + "/" + nextType + ".json",
            dataType: 'jsonp',
            type: "GET",
            success: function(data) {
                console.log(data);
                console.log('Success!');
            }
        });
于 2012-04-17T18:15:24.107 回答