私の 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」のようになります。コードを修正して正しくラップするにはどうすればよいですか? これまで助けてくれてありがとう!