嗨,我想尝试做一些非常简单的事情,但因为我对
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
});