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")
    } }
});

}

しかし、コメント付きのURLを使用すると

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

YUI が変換される代わりに、次のエラーが発生します。

リソースはスクリプトとして解釈されますが、MIME タイプ text/html で転送されます。 "。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');
        }
    }
});​

ajax構成に追加jsonpCallbackし、&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 に答える