从jquery调用post rest时出错

时间:2014-10-16 06:04:45

标签: jquery json rest

我正在尝试使用POST请求对我的用户进行身份验证。但是当我通过jQuery调用其余的调用时,它会进入错误状态并返回错误代码0。

当我使用邮递员或休息客户端呼叫同一个休息呼叫时,它会按预期为我提供输出。

我的jQuery在下面,

$(document).ready(function() {
alert('started');
var dataType="application/json";
var data = {userName:"admin",password:"admin"};
$.ajax({
    type: "POST",
    url: "https://appserver.dev.cloud.wso2.com/t/madusanka/webapps/projecttracker-default-SNAPSHOT/services/projecttracker/userservice/users/authenticate",
    data: data,
    async : false,
    success: function(){alert("success")},
    error: function(){alert("error")},
    complete: function(){alert("complete")},
    statusCode: { 
        0: function() { alert( "0 : What happened here" )},
        404: function() { alert( "404 : Page not found" )},
        500: function() { alert( "500 : Internal server error" )}
    },
    dataType: dataType

}).then(function(data) {
   //handle the user here
});
});

我不知道为什么会返回http错误0。 我使用userName = admin& password = admin拨打https://appserver.dev.cloud.wso2.com/t/madusanka/webapps/projecttracker-default-SNAPSHOT/services/projecttracker/userservice/users/authenticate并获得以下输出。

{
    Users: {
      User: {
        userName: "admin"
        userRoleId: 13268
      }
    }
}

有关于此的任何想法吗?在此先感谢。!!

1 个答案:

答案 0 :(得分:1)

  • 确保您的域名来源位于appserver.dev.cloud.wso2.com
  • 中的休息服务服务器中
  • 设置全局jQuery.support.cors = true;
  • 将ajax之前的dataType js var更改为var dataType="json";
  • setHeaders,如果headers ajax属性
  • 需要任何内容

现在你的脚本看起来像:

    $(document).ready(function () {
        $.support.cors = true;
        var dataObject = { userName: "admin", password: "admin" };
        $.ajax({
            type: "POST",
            url: "https://appserver.dev.cloud.wso2.com/t/madusanka/webapps/projecttracker-default-SNAPSHOT/services/projecttracker/userservice/users/authenticate",
            data: dataObject,
            async: false,
            success: function () { alert("success") },
            error: function () { alert("error") },
            complete: function () { alert("complete") },
            statusCode: {
                0: function () { alert("0 : What happened here") },
                404: function () { alert("404 : Page not found") },
                500: function () { alert("500 : Internal server error") }
            },
            dataType: "json"
            , headers: { SecurityToken: securityTokenValue } // or set any header info here.
        }).then(function (data) {
            //handle other logic
        });
    });

另请查看其他类似帖子:
How to get a cross-origin resource sharing (CORS) post request working