Knockout.js 处理错误:尝试登录时HttpRequestMethodNotSupportedException

Knockout.js 处理错误:尝试登录时HttpRequestMethodNotSupportedException,knockout.js,requirejs,oracle-jet,Knockout.js,Requirejs,Oracle Jet,我正在尝试使用oracle jet登录页面,使用npm yoeman软件包管理器和grunt构建工具。 以下是从服务器引发的错误响应: o、 s.s.o.provider.endpoint.TokenEndpoint:处理错误: HttpRequestMethodNotSupportedException,请求方法'GET'不支持 支持 但我使用Ajax方法作为POST define(['ojs/ojcore','knockout', 'ojs/ojinputtext', 'ojs/ojbutt

我正在尝试使用oracle jet登录页面,使用npm yoeman软件包管理器和grunt构建工具。 以下是从服务器引发的错误响应:

o、 s.s.o.provider.endpoint.TokenEndpoint:处理错误: HttpRequestMethodNotSupportedException,请求方法'GET'不支持 支持

但我使用Ajax方法作为POST

define(['ojs/ojcore','knockout', 'ojs/ojinputtext', 'ojs/ojbutton', 
'ojs/ojknockout-validation', 'ojs/ojmodel'
], function (oj, ko) {
/**
 * The view model for the main content view template
 */
function logintestContentViewModel() {
    var self = this;
    self.tracker = ko.observable();
    self.username = ko.observable("");
    self.password = ko.observable("");
    self.clickedButton = ko.observable();
    self.buttonClick = function(data, event)
    {
        //alert("call"+JSON.stringify(data));
        var trackerObj = ko.utils.unwrapObservable(self.tracker);


        alert("submittedValue====="+self.username());
        alert("password====="+self.password());
        //self.submittedValue();
        //change this to a valid ajax call.
        alert("ajax call initiated");


        self.url = "http://192.168.0.100:8080/oauth/token?grant_type=password";
        self.url +="&username=";
        self.url += self.username();
        self.url +="&password=";
        self.url += self.password();
        //this.url += "client_id=my-trusted-client&client_secret=clientpassword";
        $.ajax({

            url: self.url,
            type: "POST",
            grant_type : "password",
            data: {client_id : "my-trusted-client",  client_secret: "clientpassword1"},
            dataType: 'json',
            success: function(res) {
                alert(res);
                this.submittedValue(res.token);
            },
            failure: function(jqXHR, textStatus, errorThrown) {
                console.log(textStatus);
                this.submittedValue("Login Failed");
            }
        })
        //this.submittedValue(this.url)
        return true;

        /*
        $.ajax({
            type: "POST",
            dataType: "jsonp",
            crossDomain:true,
            data: "grant_type=password&username="+self.username()+"&password="+self.password()+"",
            xhrFields: {
                withCredentials: true
            },
            beforeSend: function (xhr) {
                xhr.setRequestHeader('Authorization', 'Basic bXktdHJ1c3RlZC1jbGllbnQ6Y2xpZW50cGFzc3dvcmQ=');
            },
            url: 'http://192.168.0.100:8080/oauth/token',
            success: function(data) {
                alert(data);
            }
        });*/

    };




    self.routePage = function(data,event)
    {
        self.clickedButton(event.currentTarget.id);
        return true;  
    };
    self.onClick = function()
    {
        self.buttonClick();
        self.routePage();
    }
    self.shouldDisableCreate = function()
    {
      var trackerObj = ko.utils.unwrapObservable(self.tracker),
      hasInvalidComponents = trackerObj ? trackerObj["invalidShown"] : false;
      return  hasInvalidComponents;
    };
    self._showComponentValidationErrors = function (trackerObj)
    {
        trackerObj.showMessages();
        if (trackerObj.focusOnFirstInvalid())
        return false;
    };


}
return logintestContentViewModel;

在本例中,您将POST作为“type”的值。尝试将“type”更改为“method”,看看是否有帮助

从jQuery.ajax API文档:

var menuId = $( "ul.nav" ).first().attr( "id" );
var request = $.ajax({
  url: "script.php",
  method: "POST",
  data: { id : menuId },
  dataType: "html"
});

request.done(function( msg ) {
  $( "#log" ).html( msg );
});

request.fail(function( jqXHR, textStatus ) {
  alert( "Request failed: " + textStatus );
});

console.log(textStatus)的输出是什么?请提供开发者工具控制台的日志错误显示请求方法“GET”不受支持,但在您的代码中,您的ajax代码类型为:“POST”
if you wanna post and get a response use this 

var dataVal2 = {your data};
 $.ajax({
type: "POST",
 url: "url",
 data: JSON.stringify(dataVal2),
contentType: "application/json; charset=utf-8", 
dataType: "json",
processData: true,
 success: function (data, status, jqXHR) { 
alert(data.result);
var projectId = data.result;
alert(projectId);
  },
 error: function (xhr) {  
alert(xhr.responseText);
 }

if you want a response by using GET method use this

var data = {your data};
                    $.getJSON("url", data).then(function (resData) {
                    self.DataResponse(resData); 
                    });
and your error function alike in post method