15

这是我的ajax调用。

 $.ajax({
    type: "GET",
    url: "http://example.com/v1/search?keyword=r",
    dataType: "jsonp",
    crossDomain: true,
    success: function (responseString) {
        alert(responseString);
    },
    error: function (xhr, errorType, exception) {
        var errorMessage = exception || xhr.statusText;
        alert(errorMessage);
    }
});

来自我的示例网址的响应

    {
    "response": [{
        "attributes": {
            "type": "enge",
            "url": "/services/data/v24.0/sobjects/Challenge__c/a0GZ0000005Vvh4MAC"
        },
        "name": "Really",
        "end_date": "2013-02-07T15:26:00.000+0000",
        "total": 350.0,
        "registered_members": 0.0,
        "id": "30",
        "type": "Design",
        "id": "a0GZ0000005Vvh4MAC",
        "start_date": "2012-11-19T16:52:00.000+0000",
        "description": "This is my really cool challenge",
        "remaining_days": 28.0,
        "categories__r": [{
            "attributes": {
                "type": "Category__c",
                "url": "/services/data/Category__c/a08Z0000000RNI2IAO"
            },
            "id": "0RNI2IAO",
            "display_name": "Andy"
        }, {
            "attributes": {
                "type": "Category__c",
                "url": "/services/Category__c/a08Z0000000RNI3IAO"
            },
            "id": "a0O",
            "display_name": "ADR"
        }]
    }

    }],
    "count": 1
}

我正在尝试进行跨域调用并出现错误

jQuery180014405992737595236_1357861668479 was not called

更新

好吧,我尝试使用 dataType:"json" 但此时出现错误

No Transport
4

4 回答 4

10

这表明网络错误或不返回 JSONP 响应的端点。

(我猜我在测试时遇到的 DNS 查找失败是因为那不是您的真实 URL(请使用example.com例如 URL,这就是它的用途)如果不是,那是您的问题)。

于 2013-01-10T10:19:18.903 回答
5

这是一个不正确的 JSONP 响应。服务器需要处理请求的callback=nameOfCallbackFunction参数GET并将其作为函数包装器。

正确的响应应该如下所示:

nameOfCallbackFunction({"yourjson": "here"});
于 2013-01-10T10:27:55.550 回答
2

我知道这是一个旧线程,但一直在努力让跨域 ajax 示例正常工作。我读了很多关于使用 dataType: jsonp 和 support.cors = true 但得到 200 - 成功但 parseerror 的内容。

然后,我在此线程中阅读了有关使用其中一个的内容。然后我将 dataType: 更改为 json 并留下 support.cors = true 并且它起作用了。最后 。. .

这可能会帮助遇到相同问题的其他人。

于 2014-12-04T21:59:19.383 回答
0

出现JQueryXXXX错误是因为你调用的url有错误,需要引入“?callback=?”,所以看起来像:

"http://example.com/v1/search?callback=?keyword=r"

另外,如果您调用 .php,请记住:

header('Content-Type: application/json; charset=utf8');
于 2015-09-22T14:32:05.130 回答