【问题标题】:web service call from javascript来自 javascript 的 Web 服务调用
【发布时间】:2014-06-24 14:16:57
【问题描述】:

我正在使用 json 调用 javascript 文件中的 web 服务,但只有当 .asmx 文件和 javascript 文件都在我的本地服务器上时才会调用 web 服务或这两个文件都是实时上传的服务器。

但我想测试从本地服务器上传到实时服务器上的网络服务。

所以请告诉我如何从本地服务器测试我的实时网络服务。 因为当我的 Javascript 文件也存在于实时但当 javascript 文件位于本地且网络服务位于实时服务器上时,相同的网络服务工作正常

请帮忙

【问题讨论】:

    标签: jquery json html web-services asp.net-ajax


    【解决方案1】:

    问题是您正试图向另一个域发出请求。

    您可以尝试使用 jQuery.ajax 调用的 crossDomain 选项。

    https://api.jquery.com/jQuery.ajax/

    【讨论】:

      【解决方案2】:

      由于某些安全原因,您可以调用位于同一域中的 Web 服务。您必须使用带有填充 (JSONP) 的 JSON。

      您的服务必须返回 jsonp,它基本上是 javascript 代码。你需要从你的ajax请求中给服务提供一个回调函数,返回的是函数调用。

      示例:1

      Ajax 请求:

          function hello() {
      
              $.ajax({
                  crossDomain: true,
                  contentType: "application/json; charset=utf-8",
                  url: "http://example.example.com/WebService.asmx/HelloWorld",
                  data: {}, // example of parameter being passed
                  dataType: "jsonp",
                  success: jsonpCallback,
      
              });
          }
      
          function jsonpCallback(json) {
              document.getElementById("result").textContent = JSON.stringify(json);
          }
      

      服务器端代码:

      public void HelloWorld(int projectID,string callback)
      {
      
          String s = "Hello World !!";
          StringBuilder sb = new StringBuilder();
          JavaScriptSerializer js = new JavaScriptSerializer();
          sb.Append(callback + "(");
          sb.Append(js.Serialize(s));
          sb.Append(");");
          Context.Response.Clear();
          Context.Response.ContentType = "application/json";
          Context.Response.Write(sb.ToString());
          Context.Response.End();
      }
      

      例子:2How can I produce JSONP from an ASP.NET web service for cross-domain calls?

      【讨论】:

        猜你喜欢
        • 2011-07-21
        • 1970-01-01
        • 2012-07-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多