如何在jQuery中使用JSONP随机回调?

时间:2013-02-15 11:31:22

标签: jquery ajax callback jsonp

我正在努力使用jQuery来处理Ajax / JSONP请求。

我正在使用两个不同的域名,我会进行几次类似的ajax调用。因此,我需要依赖jQuery自动生成的回调随机名称。如果我添加jsonpCallback设置,此代码就可以使用,但同时调用会发生冲突(See here)。

documentation之后,我最终得到了这段代码:

var request = $.ajax({
        url: "http://www.myUrl.com/myScript.php?preventCache="+new Date(),
        data: {GETvariableName:"value"},
        contentType: "application/json",
        dataType:'jsonp'})
    .done(function(json) {
        console.dir(json.mydata);
        })
    .fail(function(e) {
        console.log(e.message);
        });

PHP文件提供如下内容:

callback(
    {
        "mydata":
        [
        // my JSON content...
        ]
    }
);

我收到此错误消息:

  

未捕获的ReferenceError:未定义回调。

很好,我应该使用哪个函数名,因为它应该是自动生成的?

2 个答案:

答案 0 :(得分:1)

php不应该定义callback,使用$_GET['callback']发送的访问值

答案 1 :(得分:0)

您应该使用查询参数?callback = function_name作为服务器上的函数名称。 jQuery生成一个随机回调名称并自动将其映射到.done函数。