【问题标题】:calling web service using jquery使用 jquery 调用 Web 服务
【发布时间】:2012-06-27 04:09:22
【问题描述】:

我正在尝试使用 jquery 调用本地 webservice/webApi,但我已经被困了好几天了。有人可以帮帮我吗?

所以我的网络服务位于 localhost 端口 4011 即 localhost:4011/api/poi/

我的 javascript 位于本地主机端口 localhost:4213/ 上,我是这样称呼它的:

    $.get('http://localhost:4011/api/values', function (data) {
        alert(data);
    });        

当我直接在浏览器中输入 url 时,它返回了结果。但是当我使用 jquery 调用它时。我没有回应(通过开发者工具查看)。

我不确定我做错了什么。请帮忙。

如果有帮助,我正在使用 webApi mvc .net4。

【问题讨论】:

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


    【解决方案1】:

    这是由于Same origin policy。由于 API 与您提供网页的端口不同,因此浏览器将不允许您发出请求。

    您可以使用 jsonp 来解决这个问题,或者在您的 Web 服务上使用跨源策略。

    【讨论】:

      【解决方案2】:

      如果您使用的是 CrossDomain,请使用此选项,因为 CrossDomain 在 jQuery 中不起作用!

      $.ajax({
          url: 'ajax/test.html',
          crossDomain: true,
          success: function(data) {
              alert(data);
          }
      });
      

      【讨论】:

        【解决方案3】:

        您可能受到跨源策略CORS 的限制。配置您的 Web 服务以接受跨域发出的请求。您可以添加 Access-Control-Allow-Origin 标头,例如

        responseMessage.Headers.Add("Access-Control-Allow-Origin","*");
        

        【讨论】:

          猜你喜欢
          • 2012-04-09
          • 1970-01-01
          • 1970-01-01
          • 2012-06-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-18
          • 1970-01-01
          相关资源
          最近更新 更多