无法从jQuery调用WCF Restful服务

时间:2012-06-27 21:50:15

标签: jquery wcf

以下是我的jQuery脚本代码:

    $(document).ready(function () {
          $.ajax({
              cache: false,
              type: "GET",
              async: true,                  
              dataType: "json",
              url: "http://localhost:9002/SampleServices/Service/REST/Employees",                  
              processdata: false,                  
              error: ServiceFailed,
              success: function () { alert("succeeded");   }
          });
      });

      function ServiceFailed(result) {
          alert('Service call failed: ' + result.status + '' + result.statusText);
          Type = null;
          Url = null;
          Data = null;
          ContentType = null;
          DataType = null;
          ProcessData = null;
      }

      function ServiceFailed(xhr) {
          alert("error");
          alert(xhr.responseText);
          if (xhr.responseText) {
              var err = xhr.responseText;
              if (err)
                  error(err);
              else
                  error({ Message: "Unknown server error." })
          }
          return;
      }

当我运行上面的代码时,它总是输入ServiceFailed(xhr)并警告“错误”。

当我尝试通过浏览器执行上述url(“http:// localhost:9002 / SampleServices / Service / REST / Employees”)时,我得到以下JSON响应: { “网页”:1, “记录”:1, “行”:[{ “小区”:[ “1”, “哈里斯”, “21-03-1979”, “HR”], “ID”:1 }], “总”:1}

Fiddler在我运行jQuery脚本时说:

#   Result  Protocol    Host    URL Body    Caching Content-Type    Process Comments    Custom  
1   200 HTTP    localhost:9002  /SampleServices/Service/REST/Employees?_=1340833203960  89      application/json; charset=utf-8 chrome:1448         

2 个答案:

答案 0 :(得分:1)

carlosfigueira钉了它。

这是一个跨域请求,因此我需要在App.config文件中为我的WCF服务添加跨域支持

答案 1 :(得分:0)

documentation开始,错误回调函数接受三个参数:jqXHRtextStatuserrorThrown

您的方法只有一个参数。首先应该让错误方法采用三个参数并检查它们具有的值。