调用其他Web服务时,Jquery ajax失败

时间:2014-11-18 13:27:19

标签: javascript jquery ajax json rest

我有一组REST URI,我可以在服务器上进行身份验证后访问它们。此服务使用登录信息获取JSON输入,并使用会话ID检索JSON输出。

使用Rest客户端时,如Chrome扩展程序,一切正常。

现在我想用JS实现它,但是尽管返回失败,我看不到任何错误的细节(错误消息是空白的),也没有找到我在代码中遗漏的内容。

$.ajax({
    // the URL for the request
    url: "https://host002:50000/b1s/v1/Login",

    // the data to send (will be converted to a query string)
    data: {
        UserName: "manager",
        Password: "1234",
        CompanyDB: "CUS_001"
    },

    // whether this is a POST or GET request
    type: "POST",

    // the type of data we expect back
    dataType : "json",

    // code to run if the request succeeds;
    // the response is passed to the function
    success: function( json ) {
        $( "<h1/>" ).text( json.title ).appendTo( "body" );
        $( "<div class=\"content\"/>").html( json.html ).appendTo( "body" );
    },

    // code to run if the request fails; the raw request and
    // status codes are passed to the function
    error: function( xhr, status, errorThrown ) {
        alert( "Sorry, there was a problem! " + xhr.responseText);
        console.log( "Error: " + errorThrown );
        console.log( "Status: " + status );
        console.dir( xhr );
    },

    // code to run regardless of success or failure
    complete: function( xhr, status ) {
        alert( "The request is complete!" );
    }
});

xhr.responseText始终为空白。状态始终为错误。 errorThrown也总是空白。

我也尝试了$ post方法,但也有同样的行为。

2 个答案:

答案 0 :(得分:0)

您的JSON不正确。尝试使用此

data: JSON.stringify({UserName: "manager", Password: "1234", CompanyDB: "CUS_001"});

答案 1 :(得分:0)

在从一个网址导航到另一个网址时,会弹出一个跨域错误的内容。 试试这个。 使用ajax调用同一网址上的某个功能,并从那里使用 CURL 请求到您的网络服务网址。