使用$ .getScript来获取包含json内容的跨域js文件是否合适?

时间:2013-04-11 04:56:03

标签: jquery ajax jsonp

我是JSONP的新手,下面是我的情况:

我使用PHP来编写一个带有JSON内容的js文件,供前端阅读,我尝试了下面的方式,但是它有效。

但是,我想问一下

A)是否有必要在jsoncallback()中加入JSON来包装album.js内容?

B)使用$.getScript()读取包含跨域的JSON内容的js文件是否合适?

由于

1。用于加载js文件的代码

$.getScript("http://127.0.0.1:8080/album.js")

function jsoncallback (data){
    $.each(data, function() {
        console.log($(this))
    })
}

2。 album.js内容

jsoncallback([{
        "id": "23",
        "author": "roy",
        "email": "a",
        "age": "0",
        "tel": "1",
        "title": "test",
        "image_name": "Lighthouse.jpg",
        "image_type": "image\/jpeg",
        "image_size": "561276",
        "status": "1",
        "create_date": "2013-04-03 14:39:32",
        "modify_date": "2013-04-09 19:25:07"
    }, {
        "id": "22",
        "author": "roy",
        "email": "a",
        "age": "0",
        "tel": "1",
        "title": "test",
        "image_name": "Desert.jpg",
        "image_type": "image\/jpeg",
        "image_size": "845941",
        "status": "1",
        "create_date": "2013-04-03 14:39:29",
        "modify_date": "2013-04-09 19:25:02"
    }
])

1 个答案:

答案 0 :(得分:1)

A和B:是的。这就是JSONP的工作原理。

您可以将其重写为:

$.ajax({
    url: "http://127.0.0.1:8080/album.js",
    jsonpCallback: "jsonpcallback",
    jsonp: false,
    dataType: "jsonp"
}).done(function(data){
    console.log(data); // array of objects
});