我正在尝试使用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中运行页面时出现错误请求错误。任何想法是什么问题?
答案 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