关于$.ajax()中url拼接问题

自行脑补
  • 1k

初学ajax,问题可能有点傻,还望各位大神耐心帮帮我,谢谢。
原生javascript ajax是这样的:

request.open("GET","server.php?number=" + document.getElementById("keyword").value);

number后面接上input的value就能访问,
我试着换成jquery的$.ajax():

    $.ajax({
        type:"GET",
        url:"server.php?number=" + $('#keyword').val(),
        success:function(result){
            $("#searchResult").html(result);
        }
    })

这里就出现后台php传来的参数错误,
控制台显示:

    Request URL:http://localhost/ajax/server.php?number=

number后面就接不上input的值了

回复
阅读 8.1k
6 个回答
✓ 已被采纳

debug看看$('#keyword').val()结果是什么

感觉把$('#keyword').val() 放到ajax外边试试

var number = $('#keyword').val();
 $.ajax({
        type:"GET",
        url:"server.php?number="+number,
        success:function(result){
            $("#searchResult").html(result);
        }
    })

是不是$('#keyword').val(),没有获取到值了

$('#keyword')里面值是空的吧,你在jquery里也可以用js啊把那段jq代码替换成原来的js也行啊

可能没有获取到值,看看打印的值是什么

或者放到外面试试

var url = "server.php?number=" + $('#keyword').val();
$.ajax({
        type:"GET",
        url:url,
        success:function(result){
            $("#searchResult").html(result);
        }
    })

分析

从返回结果http://localhost/ajax/server.php?number=上看到“number=''
如果**$('#keyword')**取到的是一个空元素,那么$('#keyword').val()返回的结果应该是undefined

http://localhost/ajax/server.php?number=undefined

但是你拿到的是空,这就说明$('#keyword')确实取到了input元素,并且这个元素里的值为“空”

方案

建议你去排查下你的html文件,看看是否有两个

<inpput id="keyword"/>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏