ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Javascript-在使用jQuery请求JSONP时可以使用静态(即预定的)回调函数名称吗?

2019-11-07 02:37:20  阅读:185  来源: 互联网

标签:ajax callback jsonp javascript jquery


jQuery documentation列出了以下使用$.getJSON请求JSONP的示例:

$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?",
  function(data) {
    $.each(data.items, function(i,item) {
      $("<img/>").attr("src", item.media.m).appendTo("#images");
      if (i == 3) return false;
    });
  });

而不是使用此方法,因为此参数会生成动态回调函数名称:

jsoncallback=?

我希望能够事先将其设置为硬编码的函数名称,如下所示:

jsoncallback=test

从我运行脚本的角度来看,这是可行的,并且返回的JSONP将JSON对象包装在对test()的调用中.

但是,我不知道如何设置回调函数.它不应该这么简单吗?

function test(data) {
  console.log(data);
}

$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=test");

当我尝试这样做时,我会得到包装在test()中的JSONP,但是从未调用我定义的函数test().我想念什么吗?

谢谢你的帮助!

解决方法:

作为defined in the documentation供您使用以下方法

jQuery.getJSON(...)

您需要指定callback =?进行JSONP调用时.我通常只将其用于“ json”的响应类型.对于“ jsonp”的响应类型,您要使用:

jQuery.get(...)

并将类型指定为“ jsonp”.请参阅此documentation on the subject.但这也受必须具有callback =?的约束.

我认为您是looking for is this

jQuery.getScript(...)

哪个应执行您在回调中定义的任何方法.

标签:ajax,callback,jsonp,javascript,jquery
来源: https://codeday.me/bug/20191107/2002569.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有