我有一个函数getShare,它创建一个脚本,然后调用url shortener api,然后返回一个缩短的url,并将该链接设置为输入框的值。
其次,我也有这个函数,我正在尝试使用第一个函数。到目前为止,我只能够.show加载器gif,但不能在函数成功时隐藏它。
编辑:下面是在response.success中使用我的原始脚本更新的代码,但我在控制台中收到一条消息,说无法加载资源和一个404 -缺少的url显示为http://b1t.co/Site/api/External/MakeUrlWithGet?callback=apiCallback&_=1391704846002
function getShare(url)
{
$('#loader').show(); // show loading...
$.ajax({
dataType: "jsonp",
jsonpCallback:'apiCallback', // this will be send to api as ?callback=apiCallback because this api do not want to work with default $ callback function name
url: 'http://b1t.co/Site/api/External/MakeUrlWithGet',
data: {'url':url},
success: function(response){
$('#loader').hide(); // hide loading...
//respponse = {success: true, url: "http://sdfsdfs", shortUrl: "http://b1t.co/qz"}
if(response.success){
{
var s = document.createElement('script');
var browserUrl = document.location.href;
//alert(browserUrl);
if (browserUrl.indexOf("?") != -1){
browserUrl = browserUrl.split("?");
browserUrl = browserUrl[0];
}
//alert(browserUrl);
var gifUrl = $('#gif_input').value;
var vidUrl = $('#gif_input').value;
//alert(gifUrl + "|" + vidUrl);
url = encodeURIComponent(browserUrl + "?gifVid=" + gifUrl + "|" + vidUrl);
//alert(encodeURIComponent("&"));
s.id = 'dynScript';
s.type='text/javascript';
s.src = "http://b1t.co/Site/api/External/MakeUrlWithGet?callback=resultsCallBack&url=" + url;
document.getElementsByTagName('head')[0].appendChild(s);
}
function resultsCallBack(data)
{
var obj = jQuery.parseJSON(JSON.stringify(data));
$("#input-url").val(obj.shortUrl);
}
}
},
error:function(){
$('#loader').hide();
}
});
}发布于 2014-02-07 00:21:51
没有必要“组合”它。
有人建议使用常规的ajax方法。只需将您希望在成功时执行的js脚本移到success:回调中即可。
有关ajax方法的更多信息,请参阅我在此处提供的另一个答案:https://stackoverflow.com/questions/21285630/writing-my-first-rest-api-call-to-a-webservice-endpoint-post/21286810#21286810或jQuery的文档:http://api.jquery.com/jQuery.ajax/
注意:要使用它,您将需要jQuery,可能还需要一个用于支持
https://stackoverflow.com/questions/21608060
复制相似问题