使用jQuery和JSONP从不同服务器上的文本文件中检索数据

嗨,我想尝试做一些非常简单的事情,但因为我对
JSONP很新,我正在努力解决它.我想要做的就是从不同域中的文本文件中检索一些JSON(因此我需要使用JSONP来解决跨域问题).我使用以下代码:

$.ajax({
        type: "GET",
        dataType: 'jsonp',
        url: "http://www.topshop.com/aboutus/show.txt",
        success: returnedMessage
});

function returnedMessage(data) {
    console.log(data.message);
}

我知道JSONP将JSON作为函数返回,但我不知道如何将生成的json对象打印到控制台.我很确定它可以完成虽然我可以在Firebug的NET选项卡中看到它将JSON作为响应返回.在Firebug控制台中,我收到一条无效的标签消息,我认为这是因为我没有以正确的方式处理JSONP请求.谁能帮我这个?

最佳答案 您的JSONP格式不正确.该文件包含JSON数据,而不是JSONP数据.您收到的错误消息是因为浏览器尝试将对象作为代码运行.您需要围绕JSON数据进行函数调用:

callback({
  "message": "This is coming from staging."
});

由于文本文件无法使用带有发送给它的函数名的查询字符串,因此必须使用jsonpCallback属性指定函数名:

$.ajax({
  type: "GET",
  dataType: 'jsonp',
  jsonpCallback: 'callback',
  url: "http://www.topshop.com/aboutus/show.txt",
  success: returnedMessage
});
点赞