【问题标题】:Remote JSONP datasource isn't working for me远程 JSON 数据源不适合我
【发布时间】:2011-04-12 11:34:17
【问题描述】:

无论我做什么,我都无法得到警报(“测试”);显示警报。由于某种原因,这个 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,
    });

【问题讨论】:

标签: jquery jquery-ui jsonp


【解决方案1】:

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

如果您的常规 JSON url (http://x.com/y.php) 像这样返回 JSON:

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

那么相同的 JSONP url 将如下所示:

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

它会返回如下内容:

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

您的网址似乎没有包含 JSONP 的“P”部分。

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

【讨论】:

  • $.ajax 的工作不是将其解析为任意 jsonp1234567 类型的回调函数并成功将其作为“数据”获取:函数(数据)吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-26
  • 1970-01-01
相关资源
最近更新 更多