远程JSONP数据源对我不起作用

时间:2010-09-15 03:25:02

标签: jquery jquery-ui jsonp

无论我做什么,我都无法得到警觉(“测试”);显示警报由于某种原因,这个jsonp(虽然它正确地获取数据:http://u.kodingen.com/1JsHcN)从不调用成功函数。

如果我在这里复制并粘贴示例:http://jqueryui.com/demos/autocomplete/#remote-jsonp它可以很好地工作。但我的网址没有。

任何想法?

        $("#venue_in").autocomplete({
        source: function(request, response) {
            $.ajax({
                url: "http://x.com/y.php",
                dataType: "jsonp",
                data: request,
                cache: false,                
                success: function(data) {
                    alert("test");
                    response(data);
                }
            })
        },
        minLength: 2,
    });

1 个答案:

答案 0 :(得分:4)

您的网址似乎没有返回有效的JSONP。它与JSON不同。

如果您的常规JSON网址(http://x.com/y.php)返回JSON,请执行以下操作:

[{'label':'blah blah','value':3},{'label':'foo",'value':42}]

那么相同的JSONP网址看起来像这样:

`http://x.com/y.php?callback=myfunc`

它将返回如下内容:

myfunc([{'label':'blah blah','value':3},{'label':'foo",'value':42}])

您的网址似乎不包括JSONP的“P”部分。

wikipedia's page不是很清楚,但如果你向下滚动到JSONP上的部分,然后仔细阅读它,它应该是有意义的。 (如果有人比维基百科有更好的参考,请发布)。