jQuery.ajax({
url: 'code/rank.php?url=google.com',
type: 'get',
dataType: 'text/html',
success:function(data)
{
alert(data);
document.write(data);
}
});
我做了一些测试 - 似乎这是罪魁祸首:
dataType:'text/html'
为什么:在 jQuery 的文档中 - 在http://api.jquery.com/jQuery.ajax/
dataType 允许的值:
“xml”
“html”
“json”
“jsonp”
“文本”
多个空格分隔的值
我试过
dataType: 'text'
为我工作。
一定要把你的脚本标签放在后面
如果您在页面内联执行它
<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'一起使用。
顺便说一句 - 可能有另一个地方可以隐藏另一个错误:code/rank.php?url=google.com
如果您当前的 URL 是 www.example.com/somefolder/ 那么它将被解释为 www.example.com**/somefolder/**code/rank.php?url=google.com
如果您当前的 URL 是 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',类型:'get',dataType:'text/html',成功:function(data) { alert(data); document.write(data); } });
我做了一些测试 - 似乎这是罪魁祸首:
dataType:'text/html'
为什么:在 jQuery 的文档中 - 在http://api.jquery.com/jQuery.ajax/
dataType 允许的值:
“xml”
“html”
“json”
“jsonp”
“文本”
多个空格分隔的值
我试过
dataType: 'text'
为我工作。
一定要把你的脚本标签放在后面
如果您在页面内联执行它
<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'一起使用。
顺便说一句 - 可能有另一个地方可以隐藏另一个错误:code/rank.php?url=google.com
如果您当前的 URL 是 www.example.com/somefolder/ 那么它将被解释为 www.example.com**/somefolder/**code/rank.php?url=google.com
如果您当前的 URL 是 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>