Javascript 使用jquery和get请求更改文本
我的javascript/jquery代码有什么问题Javascript 使用jquery和get请求更改文本,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,我的javascript/jquery代码有什么问题 <%= link_to 'Click', '#', id: 'link' %><span id="new-data"></span> <script type="text/javascript" charset="utf-8"> $("#link").click(function(){ $.get('http://httpbin.org/get', { name: "John",
<%= link_to 'Click', '#', id: 'link' %><span id="new-data"></span>
<script type="text/javascript" charset="utf-8">
$("#link").click(function(){
$.get('http://httpbin.org/get', { name: "John", time: "2pm" }).done(function(data) {
$("#new-data").text(data);
});
});
</script>
$(“#链接”)。单击(函数(){
$.get('http://httpbin.org/get“,{name:“John”,time:“2pm”}).done(函数(数据){
$(“#新数据”)。文本(数据);
});
});
在
数据中保存的响应必须在立即回调中,而不是在.done()
回调中,该回调仅在成功时执行,根本不包含响应。问题可能是您使用的是绝对URL。有些浏览器将绝对URL视为跨域请求,即使它不是。尝试改用相对URL
$("#link").click(function(){
$.get('/get', { name: "John", time: "2pm" }).done(function(data) {
$("#new-data").text(data);
});
});
这个代码应该可以工作:参考jquery文档,请找到它
$(“#链接”)。单击(函数(){
$.get(”http://httpbin.org/get“,{name:“John”,time:“2pm”},函数(数据){
$(“#新数据”)。文本(数据);
});
}
您看到了什么错误?console.log(data);
查看您作为响应返回了什么。我没有收到任何错误。console.log显示了正确的响应,但#新数据的文本不会更改使用firefox控制台,我想您会自己解决的!jqXHR.success()、jqXHR.error()和jqXHR.complete()从jQuery 1.8开始,jQuery 1.5中引入的回调方法已被弃用。要准备代码以便最终删除,请改用jqXHR.done()、jqXHR.fail()和jqXHR.always()。
。文本中的内容仍然不变。控制台显示响应正确,但不显示#newdata.text/changed@KhanhTO-是,但.done()
不包含响应,只有$中的立即回调。get
方法保存响应。请查看页面末尾的示例:通过请求test.cgi向结果发出警报,并添加额外的数据负载(HTML或XML,具体取决于返回的内容)。
@spuggy,使用.HTML()进行尝试
方法而不是.text()
。我得到控制台中显示的正常响应,但不显示#newdata.text/changed@spuggy:如果可能,您应该将其更改为相对URL。这会更好,因为某些浏览器在绝对URL方面存在问题。这是改进代码的另一个建议。@spuggy:您是如何检查的?您使用了网络捕获或console.log(data)
@spuggy:您的原始代码应该可以工作,只需要将其更改为相对URL,以避免某些浏览器出现问题。$(文档).on(“单击”,“链接”,函数(){$.get(“”,{name:“John”,time:“2pm”},函数(data){$(“#新数据”).html(数据);console.log(数据);});然后转到firebug控制台。好吗?
$("#link").click(function(){
$.get('/get', { name: "John", time: "2pm" }).done(function(data) {
$("#new-data").text(data);
});
});
<script>
$("#link").click(function() {
$.get("http://httpbin.org/get", { name: "John", time: "2pm" }, function (data) {
$("#new-data").text(data);
});
}
</script>