jQuery.ajax({
url: 'code/rank.php?url=google.com',
type: 'get',
dataType: 'text/html',
success:function(data)
{
alert(data);
document.write(data);
}
});
我做了一些测试 - 似乎这是罪魁祸首:
数据类型:'text/html'
为什么:
在 jQuery 文档中 - http://api.jquery.com/jQuery.ajax/
dataType 允许的值:
“xml”
“html”
“json”
“jsonp”
“文字”
多个以空格分隔的值
我试过了
数据类型:'文本'
为我工作。
一定要把你的脚本标签放在
之后
如果你在页面内执行它
<p>Alexa rank: <span id="div-1"></span></p>
<script>
jQuery.ajax({
url: 'code/rank.php?url=google.com',
type: 'get',
dataType: 'text',
cache: false,
success: function(data)
{
alert(data);
// comment: $('#div-1').html(data)
// inserts data inside $('#div-1')
$('#div-1').html(data);
}
});
</script>
但更清洁的方法:
<html>
<head>
<script>
// comment:
// in jQuery
// $( yourFunction )
// is a shortcut for
// $(document).ready( yourFunction )
$(function(){
jQuery.ajax({
url: 'code/rank.php?url=google.com',
type: 'get',
dataType: 'text',
cache: false,
success: function(data)
{
alert(data);
// comment: $('#div-1').html(data)
// inserts data inside $('#div-1')
$('#div-1').html(data);
}
});
});
</script>
</head>
<body>
<p>Alexa rank: <span id="div-1"></span></p>
</body>
</html>
在最后的代码中,我使用了 cache: false,因为我觉得这对这种情况有好处。我正在使用 dataType: 'text' 因为您只需要一个数字 - 那为什么不呢?它对我来说只是更多的亲吻。也许它适用于 'html'。
顺便说一句 - 可能有另一个地方可以隐藏另一个错误:
代码/rank.php?url=google.com
如果您当前的网址是
www.example.com/somefolder/
那么它将被解释为
www.example.com**/somefolder/**code/rank.php?url=google.com
如果您当前的网址是 www.example.com/somefolder/another/
那么它将被解释为
www.example.com**/somefolder/another/**code/rank.php?url=google.com
我的建议 - 您始终可以使用 Firefox 或 Google Chrome 开发者工具 > 网络查看返回您的 ajax 请求的内容 - '1' 或 'PAGE 404 NOT FOUND' ^_^
jQuery.ajax({
url: 'code/rank.php?url=google.com',
类型:'得到',
数据类型:'文本/html',
成功:功能(数据)
{
警报(数据);
文档.写(数据);
}
});
我做了一些测试 - 似乎这是罪魁祸首:
数据类型:'text/html'
为什么:
在 jQuery 文档中 - http://api.jquery.com/jQuery.ajax/
dataType 允许的值:
“xml”
“html”
“json”
“jsonp”
“文字”
多个以空格分隔的值
我试过了
数据类型:'文本'
为我工作。
一定要把你的脚本标签放在
之后
如果你在页面内执行它
<p>Alexa rank: <span id="div-1"></span></p>
<script>
jQuery.ajax({
url: 'code/rank.php?url=google.com',
type: 'get',
dataType: 'text',
cache: false,
success: function(data)
{
alert(data);
// comment: $('#div-1').html(data)
// inserts data inside $('#div-1')
$('#div-1').html(data);
}
});
</script>
但更清洁的方法:
<html>
<head>
<script>
// comment:
// in jQuery
// $( yourFunction )
// is a shortcut for
// $(document).ready( yourFunction )
$(function(){
jQuery.ajax({
url: 'code/rank.php?url=google.com',
type: 'get',
dataType: 'text',
cache: false,
success: function(data)
{
alert(data);
// comment: $('#div-1').html(data)
// inserts data inside $('#div-1')
$('#div-1').html(data);
}
});
});
</script>
</head>
<body>
<p>Alexa rank: <span id="div-1"></span></p>
</body>
</html>
在最后的代码中,我使用了 cache: false,因为我觉得这对这种情况有好处。我正在使用 dataType: 'text' 因为您只需要一个数字 - 那为什么不呢?它对我来说只是更多的亲吻。也许它适用于 'html'。
顺便说一句 - 可能有另一个地方可以隐藏另一个错误:
代码/rank.php?url=google.com
如果您当前的网址是
www.example.com/somefolder/
那么它将被解释为
www.example.com**/somefolder/**code/rank.php?url=google.com
如果您当前的网址是 www.example.com/somefolder/another/
那么它将被解释为
www.example.com**/somefolder/another/**code/rank.php?url=google.com
我的建议 - 您始终可以使用 Firefox 或 Google Chrome 开发者工具 > 网络查看返回您的 ajax 请求的内容 - '1' 或 'PAGE 404 NOT FOUND' ^_^
回复评论:
是的,您的主旨是正确的。
这是实现它的一种方法
(这对我的思维和组织代码的方式来说会很舒服):
<html>
<head>
<script>
// defining tool:
function updateRankForSite( inUrl, $inInsertTo ) {
$.ajax({
url: 'code/rank.php?url=' + inUrl,
type: 'get',
dataType: 'text',
cache: false,
success: function(data)
{
alert(data);
$inInsertTo.html(data);
}
});
}
</script>
<script>
// using tool:
$(function(){
outputRankForSite( 'google.com', $('#rank-google') );
outputRankForSite( 'yandex.com', $('#rank-yandex') );
// and here is example how to interact with user
$('button-1').click( function( event ) {
// comment
// event.preventDefault() blocks default behavior
// for clicking on <a href="...">...</a> tag
// that means you wouldn'd be redirected to href
event.preventDefault();
outputRankForSite(
'stackoverflow.com',
$('#rank-stackoverflow')
);
// comment:
// and you can leverage not just 'stackoverflow.com'
// but anything that user wants - he can
// put his request to <input="text" id="example-input" ...>
// and you could collect his input by using command like
// $('#example-input').val()
});
});
</script>
</head>
<body>
<p>Alexa rank for google.com: <span id="rank-google"></span></p>
<p>Alexa rank for yandex.com: <span id="rank-yandex"></span></p>
<p>
Alexa rank for stackoverflow.com (press button to get rank):
<span id="rank-stackoverflow"></span>
</p>
<a href="#" id="button-1">Press this button to update rank</a>
</body>
</html>