0

尽管 WCF 服务方法成功返回(我通过设置断点验证),但我的 ajax 方法总是返回 ServiceFailed。代码如下所示。可能是什么问题?

function LoginToServer(name, password) {
    server = "localhost:1706";
    Type = "GET";
    var encodeusername = $.base64.encode(encode_utf8(name.value));
    var encodepwd = encode_utf8(password.value);
    var params = 'username=' + encodeusername + '&password=' + encodepwd + '&clientip=none';
    Url = "http://" + server + "/WCF/Test/TestService.svc/rest/Login?" + params;
    ContentType = "application/json; charset=utf-8";
    DataType = "jsonp";
    ProcessData = true;
    JsonpCallback = "alertResponse",
    method = "Login";
    CallService();
}


function CallService() {
    $.ajax({
        type: Type, //GET or POST or PUT or DELETE verb
        url: Url, // Location of the service
        data: Data, //Data sent to server
        contentType: ContentType, // content type sent to server
        dataType: DataType, //Expected data format from server
        processdata: ProcessData, //True or False
        jsonpCallback: JsonpCallback,
        success: function (msg) {//On Successfull service call
            ServiceSucceeded(msg);
        },
        error: ServiceFailed// When Service call fails
    });

WCF服务方法定义如下:

    [OperationContract]
    [WebGet(ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json,
            UriTemplate = "/Login?username={username}&password={password}&clientip={clientip}")]
    AuthenticationStatus SlideViewerLogin(string username, string password, string clientip);

谢谢。

4

2 回答 2

0

对于跨域调用检查这个

使用 Jquery/JavaScript 调用跨域 WCF 服务

对于 WCF 调用

WCF 服务可能存在一些问题,也可以查看此博客文章,帮助您找出您面临的错误:

使用 WCF 创建 REST 服务并使用 jQuery 使用

尝试以 json 格式传递数据,如下所示

var msg2 = { "UserName": "Denny", "Password": "abc123" };
 Data = JSON.stringify(msg2);
于 2012-05-24T16:45:59.943 回答
0

我认为你需要在你有数据的地方传递变量“params”:数据,。它正在寻找数据中的某些东西,但我在您的函数中没有看到名为 data 的变量。

于 2012-05-24T16:46:44.123 回答