0

私の Web サーバーはhttp://mypc.com:80 `で動作します

次のスニップを考えると:

$(window).load(function () {
    var myURL = "http://mypc.com:8000/PSOCharts/service/HighChart_ColumnChart/i";


    $.getJSON(myURL)
        .done(function(data) {alert(data);});

    });

このエラーが発生しています:

XMLHttpRequest はhttp://mypc.com:8000/PSOCharts/service/HighChart_ColumnChart/iを読み込めません。Origin http://mypc.comは Access-Control-Allow-Origin で許可されていません。

IIS が実行されているポート (ポート 80) とは異なるポート 8000 で Web サービスが実行される理由 (と思います) を理解しています。

jsonp を使用して回避できると思いました (ここの jQuery ドキュメントによると)

というわけで、flickr api を呼び出す例をコピーしましたが、うまくいきません。考えや提案はありますか?

アップデート

わかりましたので、私のリクエストは今行われています:

var myURL = "http://192.168.1.104:8000/PSOCharts/service/HighChart_ColumnChart/i?jsoncallback=?";

    $.ajax({
        url :myURL,
        dataType: "jsonp",
        success: function(data) {a(data)} ,
        error: function(){alert("err");},
        });

しかし、私は継続的にエラー関数にぶつかっています。これが返されているものです:

[1.4,54.43,49.39,93.23]

今私はこれがb/cであると仮定しています応答テキストにはコールバックのタイプが含まれていません

ここに私が呼んでいるインターフェースの部分があります:

 [WebInvoke(Method = "GET",
        RequestFormat = WebMessageFormat.Json,
        ResponseFormat = WebMessageFormat.Json,
        UriTemplate = "HighChart_ColumnChart/{id}?callback={cb}")]
    List<double> HighChart_ColumnChart(string id,string cb);

実際に呼び出される関数は次のとおりです。

  public List<double> HighChart_ColumnChart(string id,string cb)
    {
        var z = new List<double>();
        z.Add(1.4);
        z.Add(54.43);
        z.Add(49.39);
        z.Add(93.23);
        return z;
    }

デバッグすると、CB パラメータは「jQuery19108121746340766549_1372630643878」のようになります。コードを修正して正しくラップするにはどうすればよいですか? これまで助けてくれてありがとう!

4

2 に答える 2

0

を使用しようとしてjsonpいる場合は、次のいずれかに該当することを確認してください。

  • を使用していて$.get、に設定さdataTypeれている場合jsonp
  • を使用しており、URL$.getJSONに含まれている場合。callback=?
于 2013-06-30T21:21:25.687 に答える