我在处理ajax编码的url时遇到一个问题。
我通过Ajax脚本查询数据库(Solr),将输出发送到网页(仅在我的家用计算机上的本地主机web服务器上本地服务)。
当我点击ajax生成的链接(url),它们在另一个浏览器选项卡中打开,而不是源网页。
对于原型,硬编码的url手动添加到我的网页显示正确,在相同的网页中打开JQuery "文档"标签:
$(init);
function init(){
$(function() {
$("#tabs").tabs();
});
$('#testURLs a').on('click', function (event) {
event.preventDefault();
// My JQuery tabs: 0: Search; 1: Documents
$( "#tabs" ).tabs({ active: 1 });
$.ajax({
method: "GET",
// url: "http://127.0.0.1:8080/test/d1.html",
url: this.href,
data: {}
}).done(function(response) {
$("#documents_tab_docs").html(response);
});
})
}
我设法设计了一个解决方案。对于感兴趣的人,这里是代码的重要部分。
// ...
// Localserver: http-server --cors /mnt/Vancouver/
//...
var output = '<div id="title"><h3>
<a class="docTitle" href="http://127.0.0.1:8081/programming/datasci/solr/test/'
+ doc.filename + '"><b>' + doc.title + '</b></a></h3>';
// ...
return output;
//...
//----------------------------------------
//...
init: function () {
$(document).on('click', 'a.docTitle', function () {
var $this = $(this);
var url = this.href;
$.ajax({
method: "GET"
}).done(function(response) {
// Use numbered (not named) tabs:
$( "#tabs" ).tabs({ active: 1 });
$("#iframe_docs").attr("src", url);
});
return false;
});
}