我的网络服务器运行在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。Access-Control-Allow-Origin 不允许来源http://mypc.com 。
我理解为什么(我认为)b/c 我的 web 服务在端口 8000 上运行,这与 IIS 在(端口 80)上运行的不同。
我想我可以通过使用 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”。如何修改代码以正确包装它?感谢您迄今为止的帮助!