0

YQL を使用してワードプレス ブログからデータのクロス ドメイン リクエストを実行しようとしています。これは私の最初の試みからのコードです:

var g = {data:""}

function getWP() {

    var targeturl = "http://www.mysite.com";
    var url = "http://query.yahooapis.com/v1/public/yql?"+
        "q=select%20*%20from%20html%20where%20url%3D%22"+
        encodeURIComponent(targeturl)+
        "%22&format=xml'&callback=?";

     var successfunc = function(data) {
        if(data.results[0]){
            g.data = data.results[o];
        } else {
            var errormsg = '<p>Error: could not load the page.</p>';
            alert(errormsg);
        }
    }

    $.ajax({
      url: url,
      success: successfunc
    });

}

この ajax 呼び出しを試したところ、data返されたオブジェクトは空の文字列でした。しかし、私がこれをしたとき:

$.getJSON(url, successfunc);

適切な JSON オブジェクトが返されました。2 つの呼び出しの違いは何ですか? さらに重要なことに、なぜ 2 番目のものだけが機能したのでしょうか。

4

2 に答える 2

2

違いは、データ タイプまたはコンテンツ タイプを指定していないことです。

追加

$.ajax({
  url: url,
  dataType: "json",
  contentType: "application/json; charset=utf-8",
  success: successfunc
});

あなたのajax呼び出しに

于 2012-09-05T05:43:31.540 に答える
2

$.getJSON()はデータ型jsonを使用しますが、 $ .ajax() は使用しません。標準の $.ajax()を使用する場合は、データ型を明示的に指定する必要があります。クロスドメイン呼び出しの場合、 jsonの代わりにデータ型jsonpを使用します。しかし、YQL は json でも動作すると思います。

于 2012-09-05T05:48:21.057 に答える