2016-10-19 54 views
0

我有一个内部网站,需要登录人们可以在会议期间记录笔记和其他信息。我试图通过AJAX调用将数据发布到同一个服务器上的web服务,位于同一个文件夹中。我收到401未经授权的错误。ajax webservice asmx 401未经授权的错误

的Javascript:

function saveNotes() 
{ 
    var json = "{ ID: 5, Note: 'Test Note'}"; 
    $.ajax({ 
     type: "POST", 
     url: "AutoSaveService.asmx/AutoSave", 
     data: json, 
     xhrFields: { withCredentials: true }, 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 

     success: function (r) { 
      var data = JSON.parse(r.d); 
      console.log(data.M + ":" + data.N) 
     }, 
     error: function (r) { console.log(r.responseText); }, 
     failure: function (r) { console.log(r.responseText); } 
    }); 
} 

WebService的ASMX文件:

<%@ WebService Language="C#" Class="AutoSaveService" %> 

[System.Web.Services.WebService(Namespace = "http://tempuri.org/")] 
[System.Web.Services.WebServiceBinding(ConformsTo = System.Web.Services.WsiProfiles.BasicProfile1_1)] 
[System.Web.Script.Services.ScriptService] 
public class AutoSaveService : System.Web.Services.WebService 
{ 
    [System.Web.Services.WebMethod] 
    [System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)] 
    public static string AutoSave(int ID, string Note) 
    { 
     var data = new { M = ID, N = Note }; 
     System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer(); 

     return js.Serialize(data); 
    } 

} 

我使用窗体身份验证(验证VS AD):

<authentication mode="Forms"> 
    <forms loginUrl="login.aspx" name="adAuthCookie" timeout="120" path="/"/> 
</authentication> 

我从来没有做过内的Ajax调用安全的环境,让我知道你需要什么其他信息。

我看过类似问题的其他解决方案,但无法让他们工作。

回答

0

我想通了。

public static string AutoSave(int ID, string Note) 

应该是:

public string AutoSave(int ID, string Note) 
相关问题