2016-06-29 69 views
-1

我正在使用ajax功能并尝试使用ajax获得标题,但无法正常工作。下面是一个例子如何使用ajax获得标题?

$('#ajaxlink').click(function(e) { 
 
    var $this = this.href; 
 
    $.ajax({ 
 
    url: $this, 
 
    dataType: 'html', 
 
    success: function(html) { 
 
     var div = $('title', $(html)); 
 
     $('#gettitle').text($title); 
 
     
 
    console.log(html); 
 
    } 
 

 
    }); 
 

 

 
    e.preventDefault(); 
 
    return false; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a id="ajaxlink" href="https://jsfiddle.net/">Click</a> 
 
<div id="gettitle"> 
 
</div>

回答

1

您的请求,因为CORS保护的失败。您不能轻易从其他域请求html并解析结果,除非它们明确启用了CORS。

,使之成为同一个域,可尝试此

$('#gettitle').text($(html).filter('title').text()); 
+0

我怎么能得到这个来自同一个域?但不是相同的页面标题。我正在使用完整的ajax页面更改选项,但希望在使用'pushstate'进行页面更改时更改标题。 Everythig工作正常,但我不能使用这个例子得到标题。 – Debar

+0

它在同一个域中起作用吗? – Debar

+0

试试这个吗? ($(HTML).filter( '标题')文本())$( '#的getTitle')文本; – MoustafaS

0

我看到你的代码中的一些问题, 请试试这个版本的代码

$('#ajaxlink').click(function(e) { 
 
    var urlPath = $(e.currentTarget).prop('href'); // must be a valid url 
 
    $.ajax({ 
 
    url: urlPath, 
 
    dataType: 'html', 
 
    success: function(html) { 
 
     $('#gettitle').text(html); 
 
    console.log(html); 
 
    } 
 

 
    }); 
 

 

 
    e.preventDefault(); 
 
    return false; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a id="ajaxlink" href="https://jsfiddle.net/">Click</a> 
 
<div id="gettitle"> 
 
</div>

+0

仍然无法正常工作。 – Debar

+0

@Debar在控制台中引发了什么样的错误? – Sandcar

+0

我使用完整的ajax页面更改选项,但希望在使用'pushstate'更改页面时更改标题。 Everythig工作正常,但我不能使用这个例子得到标题。 – Debar

0

您可以使用JSONP:

function logResults(json){ 
    console.log(json); 
} 

$(document).ready(function(){ 
$.ajax({ 
    url: "https://api.github.com/users/jeresig", 
    dataType: "jsonp", 
    jsonpCallback: "logResults" 
}); 

}); 

function jsonCallback(json){ 
    console.log(json); 
} 

$(document).ready(function(){ 



$.ajax({ 
    url: "http://run.plnkr.co/plunks/v8xyYN64V4nqCshgjKms/data-2.json", 
    dataType: "jsonp" 
}); 

}); 
+0

它支持所有的浏览器吗? – Debar

+0

jQuery是一个交叉浏览器框架吗? ...是。使用jsonp,您不必启用CORS。下行是异常处理。 – Legends