为什么回调函数不执行?

时间:2013-12-28 01:09:47

标签: javascript jquery ajax json

function url()
{
    var companyName='ROCHESTER REGIONAL LIBRARY COUNCIL';
    var parts=companyName.split(" ");
    var newName="";
    for(var i=0;i<parts.length;i++)
    {
        newName+=parts[i];
        newName+="+";
    }

    newName=newName.substring(0,newName.length-1);
    var url="http://www.brightscope.com/autocomplete/search-box/company/?q=";
    url+=newName;
    url+="&limit=15&timestamp=1388104659571";
    return url;
}

function getjsonn(callback)
{
    var urlv=url();
    $.ajax({
        url:urlv,
        success: callback
        });     
}

function callback(result)
{
    alert(result);
    document.getElementById('te').innerHTML=result;
}

我发送一个ajax请求来获取Json响应。 我认为请求的返回值应该是我进一步处理的Json对象。

现在,好像回调函数没有运行。 我尝试使用firebug调试代码,在控制台窗口中有一行显示成功的get请求。

谢谢你的帮助。当我调用getjsonn()时,我忘了将callback作为参数添加, 我做了一些更改,现在可以在IE浏览器上使用了。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<script src='http://code.jquery.com/jquery-2.0.3.min.js'></script> 

<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'>        </script> 
<script type="text/javascript">
function url()
{
    var companyName='ROCHESTER REGIONAL LIBRARY COUNCIL';
    var newName=companyName.replace(" ","+");
    var url="http://www.brightscope.com/autocomplete/search-box/company/?q=";
    url+=newName;
    url+="&limit=15&timestamp=1388104659571";
    return url;
}

function getjsonn(callback)
{

    var urlv=url();
    try
    {
    $.ajax({
        url:urlv,
        success: callback
        });
    }
    catch(err)
    {
        alert("error");
    }       
}

function callback(result)
{
    document.getElementById('te').innerHTML=result[1].extra.id;
}








</script>
<title>The typeof operator</title>
</head>
<body>
    <input type='button' onclick='url()' value='get url'/>
    <input type='button' onclick='getjsonn(callback)' value='get json'/>
    <p id="te">ddd</p>  
</body>
</html>

1 个答案:

答案 0 :(得分:0)

这不能正常工作。请找到chrome的错误跟踪。


XMLHttpRequest无法加载http://www.brightscope.com/autocomplete/search-box/company/?q=ROCHESTER+REGIONAL+LIBRARY+COUNCIL&limit=15&timestamp=1388104659571。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许原点'http://localhost'访问。


请注意,如果ajax请求调用除托管您的html和脚本之外的域,则这些域应允许并实现其服务为CORS(跨源资源共享)方式。