복붙노트

[JQUERY] jQuery를 AJAX와의 WebMethod를 호출 ASP.NET "401 (무단)"

JQUERY

jQuery를 AJAX와의 WebMethod를 호출 ASP.NET "401 (무단)"

해결법


  1. 1.이 날 미치게했다.

    이 날 미치게했다.

    내부 ~ / App_Start / RouteConfig.cs 변화 :

    settings.AutoRedirectMode = RedirectMode.Permanent;
    

    에:

    settings.AutoRedirectMode = RedirectMode.Off;
    

    (또는 라인을 주석)

    친화적 인 URL이 활성화되어 또한 경우에 당신은 변경해야

    url: "ConsultaPedidos.aspx/GetClients",
    

    에:

    url: '<%= ResolveUrl("ConsultaPedidos.aspx/GetClients") %>',
    

    다른 사람이 도움 누군가를 희망


  2. 2.내부 ~ / App_Start / RouteConfig.cs 변화

    내부 ~ / App_Start / RouteConfig.cs 변화

    settings.AutoRedirectMode = RedirectMode.Permanent;
    

    ...에

    settings.AutoRedirectMode = RedirectMode.Off;
    

  3. 3.401 개 권한 즉 :

    401 개 권한 즉 :

    당신이 인증을 추가하는 방법에 대해 말한 것과이 확증은 명확도이 방법을 포함합니다.

    따라서이 방법에 대한 액세스가 공개 여부를 하시겠습니까?

    공공의:

    (이와의 WebMethod 등) 공공 자원에 대한 액세스를 허용하려면 당신은 단순히 같은 디렉토리에 설정 파일이 위치 :

     <authorization>
            <allow users="*" /> 
     </authorization>
    

    당신이 태그를 넣을 경우 다음 모든 자원에 대한 사용자의 모든 종류에 대한 액세스 권한을 제공 할 것입니다. 그래서 그 대신 당신은 웹 서비스에 인증을 부여하는 태그 아래에 추가 할 수 있습니다

    <location path="YourWebServiceName.asmx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
    

    은밀한:


  4. 4.아니 전문가하지만 당신은 넣어 시도 <사용자 = "*"허용 /> config 파일에서? 귀하의 요청은 GET 방식이 아니라 (생성하는 데 사용)를 POST를 사용한다.

    아니 전문가하지만 당신은 넣어 시도 <사용자 = "*"허용 /> config 파일에서? 귀하의 요청은 GET 방식이 아니라 (생성하는 데 사용)를 POST를 사용한다.

    편집 : 당신이 클라이언트 측에서 호출 할 수없는 SOAP 방법을 사용하는 것 같다, 당신은 RESFUL 서비스를 사용해야합니다.


  5. 5.나는 누군가에게 같은 병목 현상에 갇혀 게시, 그래서 내가 해결 방법이 여기에 보이지 않는 같은 문제를 해결하기 위해 노력이 질문을 발견 :

    나는 누군가에게 같은 병목 현상에 갇혀 게시, 그래서 내가 해결 방법이 여기에 보이지 않는 같은 문제를 해결하기 위해 노력이 질문을 발견 :

    EnableSession이 WebMethod 특성에 진정한 = 당신의 방법을 사용하십시오

    처럼

    [WebMethod(EnableSession = true)]
    public static string MyMethod()
    {
        return "no me rindo hdp";
    }
    

    이 내 401 오류를 해결된다. 희망이 도움이됩니다.


  6. 6.만에 ~ / App_Start / RouteConfig.cs을 주석 처리해야

    만에 ~ / App_Start / RouteConfig.cs을 주석 처리해야

      // settings.AutoRedirectMode = RedirectMode.Permanent;
    
                 (Or do this)
    
        settings.AutoRedirectMode = RedirectMode.Off;
    

    Web.config 파일에 인증과는 아무 상관이 없다.


  7. 7.내 경우, 나는 폼의 컨트롤에의 WebMethod를 추가했다. 이 페이지 자체에 추가해야합니다.

    내 경우, 나는 폼의 컨트롤에의 WebMethod를 추가했다. 이 페이지 자체에 추가해야합니다.


  8. 8.저도 같은 문제에 직면하고 먼저 사용할 수있는 솔루션을 시도하고 작업을 수행합니다. 나는 새로운 웹 서비스를 만든 다음 나는 오류를 얻을하지 않는 웹 서비스 파일의 App_Code 폴더에서와 관계있는 코드를 추가 할 경우 나는 깨달았다.

    저도 같은 문제에 직면하고 먼저 사용할 수있는 솔루션을 시도하고 작업을 수행합니다. 나는 새로운 웹 서비스를 만든 다음 나는 오류를 얻을하지 않는 웹 서비스 파일의 App_Code 폴더에서와 관계있는 코드를 추가 할 경우 나는 깨달았다.


  9. 9.나는 당신이 당신의 대답은 접수있어 알고있다. 웹 양식 응용 프로그램을 작성하고 없음 인증에 인증을 변경하지 않으면 서 실제로 발생합니다.

    나는 당신이 당신의 대답은 접수있어 알고있다. 웹 양식 응용 프로그램을 작성하고 없음 인증에 인증을 변경하지 않으면 서 실제로 발생합니다.

    우리가 인증으로 볼 수있는 기본 인증 : 개별 사용자 계정

    우리는 인증으로 변경하면 오류가 오지 않습니다 : 없음 인증


  10. 10.내 사이트에 ASP.NET 폼 인증을 사용하고 있었고, 난 난 단지 내가이 .asmx 페이지와의 contentType으로 웹 메소드를 호출하면 작동 얻을 수 있다는 것을 시행 착오에 의해 일 "을 application / x-www-form은-urlencoded로 "과 dataType와"XML "

    내 사이트에 ASP.NET 폼 인증을 사용하고 있었고, 난 난 단지 내가이 .asmx 페이지와의 contentType으로 웹 메소드를 호출하면 작동 얻을 수 있다는 것을 시행 착오에 의해 일 "을 application / x-www-form은-urlencoded로 "과 dataType와"XML "


  11. 11.내 경우에는 문제가 URL에 있었다 Ajax.asmx이 URL은 웹 서버 설정, 예에 따라 올바른 아니었다 호출하는 "/qa/Handlers/AjaxLib.asmx/"가 "/Handlers/AjaxLib.asmx/"대신 나를 위해 일한 (내 특정 상황에서 PROD 서버에서 잘 작동) :

    내 경우에는 문제가 URL에 있었다 Ajax.asmx이 URL은 웹 서버 설정, 예에 따라 올바른 아니었다 호출하는 "/qa/Handlers/AjaxLib.asmx/"가 "/Handlers/AjaxLib.asmx/"대신 나를 위해 일한 (내 특정 상황에서 PROD 서버에서 잘 작동) :

      $.ajax({
      url: '/qa/Handlers/AjaxLib.asmx/' + action,
      type: "POST",
      async: false,
      data: data,
      contentType: "application/json; charset=utf-8",
      success: function () {
    

    내 AJAX는 다음 따라서 인증 오류가 (발생, "품질 보증"내 IIS 가상 응용 프로그램 디렉토리의 범위 밖으로 불렀다 { "메시지": "인증에 실패했습니다.", "스택 트레이스"널 (null) "예외 유형": "System.InvalidOperationException를"} ).


  12. 12.이 웹 서비스는 ASP.NET AJAX를 사용하여 스크립트에서 호출 할 수 있도록합니다. 클래스에 다음 속성을 추가

    이 웹 서비스는 ASP.NET AJAX를 사용하여 스크립트에서 호출 할 수 있도록합니다. 클래스에 다음 속성을 추가

    [System.Web.Script.Services.ScriptService]
    

    나는 유사한 문제에 직면하고,이 속성은 해결 추가.


  13. 13.내 JQuery와 아약스 호출에서 매개 변수 : 나를 위해, 내가 잘못된 "데이터"를했다. 그러나 오히려 .NET 또는 JQuery와이 매개 변수 값에 대해 불평 중 하나보다, 내가 401 권한 오류가 (오해 제 생각에)이었다.

    내 JQuery와 아약스 호출에서 매개 변수 : 나를 위해, 내가 잘못된 "데이터"를했다. 그러나 오히려 .NET 또는 JQuery와이 매개 변수 값에 대해 불평 중 하나보다, 내가 401 권한 오류가 (오해 제 생각에)이었다.

  14. from https://stackoverflow.com/questions/23033614/asp-net-calling-webmethod-with-jquery-ajax-401-unauthorized by cc-by-sa and MIT license