使用ajax调用WCF Web服务

时间:2013-08-06 10:17:39

标签: jquery ajax web-services

我正在尝试使用jquery ajax调用Web服务方法GetUserLandingPage(用户名,密码)。 这是我的代码

    var userName=$("#txt_userName").val().trim();
    var password=$("#txt_userPassword").val().trim();

    var data={
    "username":userName,
    "password":password
    };
    var jsonData=JSON.stringify(data);
    $.ajax({
    url: "http://www.coolcomma.com/user.svc/GetUserLandingPage",
    type:"GET",
    data:jsonData,
    contentType: "application/json",
    dataType: "jsonp",
    crossDomain : true,
    success: function(result){
        alert(result);
    }
});

当我在浏览器400中运行页面时出现错误请求错误。任何想法是什么问题?

1 个答案:

答案 0 :(得分:0)

您需要在通话中提供授权标头。只是将用户名和密码数据转换为json是不正确的。首先需要对字符串进行base64编码。并在ajax调用此。

(base64Encodedstring应为“username:password”)

$.ajax({
    headers : {
     "Authorization" : "Basic base64Encodedstring"
    },
    type: "GET",
    xhrFields: {
        withCredentials : true
    },
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success : function(data) {
        console.log("ok!");
    },
    error : function(jqXHR, textStatus, errorThrown) {
        console.log(textStatus + ' | ' + errorThrown);
    }
});

另外,请查看此网址:http://sameproblemmorecode.blogspot.se/2011/10/creating-secure-restfull-wcf-service.html