jquery - 使用$.getScript获取包含json内容的跨域js文件好不好?

标签 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"
    }
])

最佳答案

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
});

关于jquery - 使用$.getScript获取包含json内容的跨域js文件好不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15941046/

相关文章:

javascript - 隐藏所有内容后如何显示某些元素?切换不起作用

javascript - 设置 iframe.src (使用 jquery)时如何将 cookie 附加到请求?

javascript - 在 highchart 中应用股票图表样式

php - 为 Ajax 页面添加书签

Javascript 跨子域 XMLHTTPRequest

javascript - JSONP 适配器 Phonegap 项目无法正常工作

php - 选择2个标签按功能设置值

javascript - SOAP 原型(prototype) Ajax SOAPAction header 问题

javascript - ngResource 在 $save() 之后从 POST 响应中检索唯一 ID

javascript - AJAX 回调从未调用,不成功或错误