请使用jQuery URL bit.ly缩略帮助

有谁愿意帮我这个jQuery的bit.ly的URL缩短。 的代码如下:

function shortenUrl(urlMatch) { var urlMatch = urlMatch var username="myusername"; var key = 'R_897b82b73568ea74fffbafa5a7b846d'; $.ajax({ url:"http://api.bit.ly/v3/shorten", data:{longUrl:urlMatch,apiKey:key,login:username}, dataType:"jsonp", success:function(v) { var shortUrl=v.data.url; return shortUrl; } }); } $('button').click(function(){ var urlMatch = $(this).val(); var newUrl = shortenUrl(urlMatch); $('#menu').html(newUrl); });

每当我运行该脚本返回在控制台下面的代码:

jsonp1304728172115({ data : [ ] , "status_code" : 500, "status_txt": "missing_arg_uri"})

是否有人可以帮助。

--------------解决方案-------------

你有

data:{longUrl:urlMatch,apiKey:key,login:username},

如果JSONP是JSON一样东西,那么你的数据参数不正确形成:

data:"{'longUrl':" + urlMatch + ",'apiKey':" + key + ",'login':" + username + "}",

上面的代码没有测试,但是它应该是相似的。

这: urlMatch = $(this).val();将得到按钮上的文字变成urlMatch,这是你想要的吗?

另外, return的回调不会达到的功能,因为ajax()是一个异步函数。 为了使同步,增加async:falseajax()的参数。

return将无法正常工作一样,所以你必须把结果赋值给一个全局变量。

但是,最好是更换return shortUrl;$('#menu').html(shortUrl); ,因为这是你正在寻找的结果。 而你并不需要async:false的是,这将阻止您的代码和暂时锁定浏览器。

如果所有失败,请尝试通过查询字符串本身的参数。 你可能想看看这个。

你失踪分号“变种urlMatch = urlMatch”

分类:jQuery的 时间:2015-03-15 人气:3
分享到:

相关文章

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

55228885 版权所有 京ICP备15002868号

processed in 0.715 (s). 10 q(s)