Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 实现JSONP功能_Javascript_Jquery_Jsonp - Fatal编程技术网

Javascript 实现JSONP功能

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

我使用的是JSONP,我的目标很简单,返回的数据必须显示在我的div中。代码目前没有显示任何内容。我还在我的项目my path中集成了jquery.jsonp.js:

                 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容器中