2

更新 现在除了调整工作代码之外,我什么也没收到。这个逻辑有什么问题?我使用 dataType:'jsonp' 进行 $.ajax 调用,因为它是跨域调用的唯一方法。我知道,该调用需要“jsonp”类型,而是接收“text/html”。如何解析这个响应(转换、预处理、过滤)?

谢谢!

这是一个问题。我只是想了解使用 JSON 的想法。这是一个有效的方法。

$(document).ready(function(){
    $('ul li a').click(function (){
    var test = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from html where url="www.mohtasebi.com/blog/2011/06/cross-domain-ajax-using-jquery-the-ultimate-guide/"') + '&format=xml&callback=?';
  //var test = "http://mohtasebi.com/blog/2011/06/cross-domain-ajax-using-jquery-the-ultimate-guide/";
    loadPage(test);
    });
});

function loadPage(test)
{
    $.ajax({
    url:test,
    dataType:'jsonp',
    crossDomain: 'true',
    success: function(data){    
    if ( data.results[0] ) {     
    alert("ok")
    } }
});

}

但如果我使用评论网址

var test = "http://mohtasebi.com/blog/2011/06/cross-domain-ajax-using-jquery-the-ultimate-guide/";

而不是YUI 转换我得到这个错误:

资源解释为脚本,但使用 MIME 类型 text/html 传输:“http://mohtasebi.com/blog/2011/06/cross-domain-ajax-using-jquery-the-ultimate-guide/?callback=jQuery18104882542605046183_1347794498881&_=1347794500464 ”。jquery.min.js:8169 Uncaught SyntaxError: Unexpected token < mohtasebi.com:1

我做错了什么。谢谢!

4

2 回答 2

2
var test = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from html where url="www.mohtasebi.com/blog/2011/06/cross-domain-ajax-using-jquery-the-ultimate-guide/"') + '&format=xml';

$.ajax({
    url: test,
    dataType: 'jsonp',
    jsonpCallback: 'blah',  // just add this and remove &callback=? from url last
    crossDomain: 'true',
    success: function(data) {
        console.log(data);  // see the console for data
        if (data.results[0]) {
            alert('OK');
        }
    }
});​

添加jsonpCallback到 ajax 配置并删除 &callback=? 从 url 最后一部分。

演示

于 2012-09-16T11:39:04.637 回答
0

使用$.getJSON,这要简单得多。

var test = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from html where url="www.mohtasebi.com/blog/2011/06/cross-domain-ajax-using-jquery-the-ultimate-guide/"') + '&format=xml&callback=?';
$.getJSON(test, function (data) {
  console.log(data);
});

演示。

​</p>

于 2012-09-16T11:34:33.757 回答