使用jquery调用Web服务

时间:2012-06-27 04:09:22

标签: web-services jquery asp.net-mvc-4

我正在尝试使用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。

3 个答案:

答案 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","*");