2016-09-11 6 views
0

私の$ http.POST()に1.5を使用していて、すべて正常に動作していますが、このエラーが発生します。ローカルホストとリモートの両方でIIS 8.x以上でPOST、PUTを許可する方法

**GENERAL** 
Request URL:http://localhost/ThingBlu/OmniGrow/js/json/logged-users.json 
Request Method:POST 
Status Code:405 Method Not Allowed 
Remote Address:[::1]:80 

**Response Headers** 
Allow:GET, HEAD, OPTIONS, TRACE 
Cache-Control:private 
Content-Length:5448 
Content-Type:text/html; charset=utf-8 
Date:Sun, 11 Sep 2016 18:08:27 GMT 
Server:Microsoft-IIS/10.0 
X-Powered-By:ASP.NET 

**Request Headers** 
Accept:application/json, text/plain, */* 
Accept-Encoding:gzip, deflate 
Accept-Language:en-US,en;q=0.8 
Authorization:Basic OWFjMTIwMTAtNjhmZC00YTY4LWIxMTQtMTI3NjcyYmRkMmNkOjRmOGJkMDg0LTY2NDQtNDVmMi1iNGI4LWI4OTgwNzgyMDkzZA== 
Connection:keep-alive 
Content-Length:305 
Content-Type:application/json;charset=UTF-8 
Cookie:XDEBUG_SESSION=XDEBUG_ECLIPSE; ASPSESSIONIDQARBBSBC=LGJPEMMBPPMIKGAEMPOKDDKP; ASPSESSIONIDQAQBBRDC=HNLHMCECDLFMFBMOFMNFNNEA; ASPSESSIONIDSARCBSBD=DMGPJIECDOKINIEIIADELBOG; ASPSESSIONIDSCQBCQCD=HHHNEBHCACCJABGNFAMFHNAD; ASPSESSIONIDQATBARBD=KFNLJLHCMOECJOMCDDOFBINL; ASPSESSIONIDQCSABTAC=GDGJMOMCNPDBJAAOKJJHDDGH 
DNT:1 
Host:localhost 
Origin:http://localhost 
Referer:http://localhost/ThingBlu/OmniGrow/index.html 
User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.101 Safari/537.36 

は、ここで問題です:

マイWebConfigのファイルには、次があります:私は、下記のコードをステップ実行、および特定の部分を打つ時はいつでも何が起こっている

<modules> 
    <remove name="WebDAVModule" /> 
</modules> 
<handlers> 
    <remove name="WebDAV" /> 
</handlers> 

は、上記のエラーが発生します。

ローカルのJSONファイルに書き込んでいますが、私はFrontier Communicationsで働いていたときに成功しました。それは非常に可能性がありますが、それはないと言っているほとんどの投稿の嫌悪感です。私はそれをしたし、FRONTIERとT - MOBILEもそうしている。つまり、ここに私のANGULARコードがあります:

  /** 
      * Then log the person in 
      * @returns {object through promises} 
      */ 
      ctrlLogin.fetchLogin = function() { 

       //SUBMIT FORM 
       $scope.submit = function() { 
        console.log('Submit Clicked'); 
        //Encode Password if FormData is VALID 
        if ($scope.formData) { 
         formObj = { 
          uid: $scope.formData.myusername, 
          pwd: $scope.encode64($scope.formData.mypassword), 
          rmbr: $scope.formData.rememberme 
         }; 
         //Login Data 
         loginData.svc.getLoginData(formObj).then(function (result) { 
          console.log("Login message: ", result); 
          //if success send the person through 
          if (result.data.message === "failure") { 
           console.log("ERROR: ", result.data.message); 
           $scope.changeRoute("/error"); 
          } else { 
           console.log("SUCCESS: ", result.data); 

           //Get Path to JSON 
           $http.get(SVCURLS.data.loggedusers).then(function (data) { 
            //SUCCESS so therefore pass ACTIVE = 1 for DASHBOARD as that's 
            //where we're going next. 
            if (appservice.appFuncs.saveToJson(result.data, 1)) { 

             data.users = angular.toJson(result.data); 
             //use $.param JQUERY function to serialize the data from JSON 
             $scope.users = $.param(data.users); 
             //CONFIG using HEADERS 
             var config = HEADERS.tokenheaders; 
             **//NOTE: THIS IS THE POINT AT WHICH THE 405 ERROR OCCURS** 
             $http.post(SVCURLS.data.loggedusers, data.users, status, config) 
               .success(function (data, status, headers, config) { 
                //SUCCESS CALBACK 
                $scope.PostDataResponse = data; 
                console.log("SUCCESS Writing to JSON FILE!"); 
                window.location.href = "main-page.html"; 
               }) 
               .error(function (data, status, headers, config) { 
                //FAILURE CALLBACK 
                $scope.PostDataResponse = "DATA: " + data + 
                  "<hr/>Status: " + status + 
                  "<hr/>Headers: " + headers + 
                  "<hr/>Config: " + config; 
                console.log("ERROR Writing to JSON FILE"); 
                return deferred.reject(data ? data : '[NO DATA]'); 
               }); 
            } else { 
             //ERROR show what happened 
             console.log("ERROR: ", data); 
             //Now flip the pages that the session has been 
             //Created 
             $scope.msg = "There was an error saving your information."; 
             deferred.reject(data ? data : '[NO DATA]'); 
            } 
           }); 
          } 
         }); 
        } 
        return "intial load"; 
       }; 
      }; 
      ctrlLogin.fetchLogin(); 

ヘルプが大歓迎です。ありがとうございました。

答えて

0

矛盾する動詞フィルタを持つ他のモジュール(WebDAVではなく)かもしれません。 iis configフォルダ内のapplicationHost.configファイルの内容を確認してみてください。疑わしいモジュールとは、同じパスと類似の動詞を持つモジュールです。たとえば、IIS管理コンソールでアプリケーションの特定のモジュールXが無効になっていて、applicationHost.configで定義されている一致するパス/動詞フィルタがある場合、そのモジュールのハンドラは依然としてリクエストパイプラインの一部として呼び出され、モジュールは生成します405ステータス。 競合するモジュールを特定したら、web.configファイルのWebDAVの場合と同様にパイプラインからモジュールを削除できます。

関連する問題