我正在尝试使用jquery调用本地webservice / webApi,但我已经被困了好几天了。请有人帮帮我。
所以我的webservice位于localhost端口4011,即localhost:4011 / api / poi /
我的javascript位于本地主机端口localhost:4213 /以下是我的称呼方式:
$.get('http://localhost:4011/api/values', function (data) {
alert(data);
});
当我直接在浏览器中输入网址时,它会返回结果。但是当我使用jquery调用它时。我没有回应(通过查看开发人员工具)。
我不确定我做错了什么。请帮忙。
如果有帮助,我正在使用webApi mvc .net4。
答案 0 :(得分:1)
这是由于Same origin policy。由于API位于您为网页提供服务的不同端口,因此浏览器不允许您发出请求。
您可以使用jsonp解决此问题,或使用您的Web服务上的跨源策略。
答案 1 :(得分:1)
如果您使用的是CrossDomain,请使用此方法,因为CrossDomain在jQuery中不起作用!
$.ajax({
url: 'ajax/test.html',
crossDomain: true,
success: function(data) {
alert(data);
}
});
答案 2 :(得分:0)
您可能受到交叉来源政策CORS的限制。配置您的Web服务以接受跨域发出的请求。您可以添加Access-Control-Allow-Origin
标题,例如
responseMessage.Headers.Add("Access-Control-Allow-Origin","*");