Javascript 实现JSONP功能
我使用的是JSONP,我的目标很简单,返回的数据必须显示在我的div中。代码目前没有显示任何内容。我还在我的项目my path中集成了jquery.jsonp.js:Javascript 实现JSONP功能,javascript,jquery,jsonp,Javascript,Jquery,Jsonp,我使用的是JSONP,我的目标很简单,返回的数据必须显示在我的div中。代码目前没有显示任何内容。我还在我的项目my path中集成了jquery.jsonp.js: PRJFOLDER->WEBPages->JavaScript->query.jsonp.js index.html文件位于以下路径中: PRJFOLDER->WEBPages->index.html 我的代码: <htm
PRJFOLDER->WEBPages->JavaScript->query.jsonp.js
index.html文件位于以下路径中:
PRJFOLDER->WEBPages->index.html
我的代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<script type="text/javascript" src="http://www.jquery4u.com/function-demos/js/jquery-1.6.4.min.js"></script>
<script>
function getData(url, data, callback) {
$.ajax({
url : url,
type : 'post',
jsonp: "callback", // Needed for jsonp
dataType: "jsonp", // Also needed for jsonp
timeout : timeout,
data : data || {},
success : function(data) {
callback(data);
} // Omitted failure for this example
});
}
</script>
</head>
<body>
<h1>Hello World!</h1>
<script>
var data = {};
var url = 'http://feeds.delicious.com/v2/json/popular?callback=?'
getData(url, {}, function(result) {
console.log(result);
data = result;
});
$('#post-result').append(JSON.stringify(data));
</script>
<div id='post-result'></div>
</body>
</html>
JSP页面
函数getData(url、数据、回调){
$.ajax({
url:url,
键入:“post”,
jsonp:“回调”//jsonp需要
数据类型:“jsonp”,//jsonp也需要
超时:超时,
数据:数据|{},
成功:功能(数据){
回调(数据);
}//此示例忽略了失败
});
}
你好,世界!
变量数据={};
var url='1〕http://feeds.delicious.com/v2/json/popular?callback=?'
getData(url,{},函数(结果){
控制台日志(结果);
数据=结果;
});
$('#post result').append(JSON.stringify(data));
请任何人帮助我显示输出首先,删除jsonp。没有这个必要。 现在请记住,当您使用jsonp时,服务器将发送一个函数作为返回值,而不是对象 幸运的是,jquery支持jsonp,并将提供一个对象文本作为值。 只需事先确保您的api url支持jsonp 请参阅下面的代码:
function getData(url, data, callback) {
$.ajax({
url : url,
type : 'post',
jsonp: "callback", // Needed for jsonp
dataType: "jsonp", // Also needed for jsonp
timeout : timeout,
data : data || {},
success : function(data) {
callback(data);
} // Omitted failure for this example
});
在此之后,您需要创建一个函数来接收值:
var data = {};
var url = 'http://feeds.delicious.com/v2/json/popular?callback=yourFunction'
getData(url, {}, function(result) {
console.log(result);
data = result;
});
现在您已经获得了数据,您可以通过模板或原始文本轻松地将其添加到html中
原始文本:
$('#post-result').append(JSON.stringify(data));
哦,我强烈建议您将应用程序代码放在结束正文标记之前。什么是jquery.jsonp.js?如果jsonp.js使用jquery,那么您需要重新排序脚本您的包含顺序是错误的。您真的不需要jsonp插件。您可以只使用
$.ajax
。只需将$.jsonp({
更改为$.ajax({
),并添加“数据类型”:“jsonp”
。我假设插件正在做的就是这些。另外,您希望.append(data)
做什么?append()
需要一个节点(或jQuery对象或HTML字符串),不是对象。谢谢,我将尝试此操作。我希望append将返回结果附加到div容器中