2014-02-26 89 views
0

我有一個調用API的HTML頁面,但每次我嘗試運行時,我都會收到[object Error]jQuery ajax返回[對象錯誤]

這裏是我的代碼:

jQuery.support.cors = true; 
jQuery.ajax({ 
    type: "POST", 
    url: "https://xxxx:8440/ora/authenticationService/authentication/signIn", 
    contentType: "application/json", 
    dataType: "json", 
    data: "{'requestParameters':{'username':'xxxx', 'password':'xxxx'}}", 
    success: function (data, status, jqXHR) { 
     alert('exito!'); 
    }, 
    error: function(jqXHR, status, errorThrown) { 
     alert("Falla : " + errorThrown); 
    } 
}); 

關於此錯誤的任何想法?

+0

在此代碼中發生錯誤的位置? –

+2

alert()命令簡單地在傳遞給它的任何東西上調用toString(),因此您可以看到錯誤對象的字符串表示形式。嘗試使用'console.log(errorThrown)'而不是'alert(errorTHrown)',您可以在控制檯中看到比通過提示提示更多的信息。 –

回答

0

已找到適合我的項目的解決方案,但不能用jQuery做,與.NET

這裏做的是代碼的片段,如果它可以幫助別人:

WebRequest request = WebRequest.Create("https://xxxxxx/ora/authenticationService/authentication/signIn"); 
    request.Method = "POST"; 

    string postData = "{\"requestParameters\":{\"username\" : \"xxxx\", \"password\":\"xxxx\"}}"; 
    byte[] byteArray = Encoding.UTF8.GetBytes(postData); 

    request.ContentType = "application/json"; 
    request.ContentLength = byteArray.Length; 

    System.Net.Security.RemoteCertificateValidationCallback valor = new System.Net.Security.RemoteCertificateValidationCallback(ValidateServerCertificate); 
    ServicePointManager.ServerCertificateValidationCallback = valor; 

    Stream dataStream = request.GetRequestStream(); 
    dataStream.Write(byteArray, 0, byteArray.Length); 
    dataStream.Close(); 

    WebResponse response = request.GetResponse(); 
    dataStream = response.GetResponseStream(); 

    StreamReader reader = new StreamReader(dataStream); 

    string responseFromServer = reader.ReadToEnd(); 

    HttpContext httpContext = HttpContext.Current; 
    NameValueCollection headerList = response.Headers; 

    HttpContext.Current.Session["JSESSIONID"] = headerList.Get("Set-Cookie"); 


    reader.Close(); 
    dataStream.Close(); 
    response.Close(); 

感謝所有!

0

最有可能的解釋是,當你告訴它你正在發送JSON但是你的JSON無效時,服務器會拋出一個錯誤。您可以使用'以JSON分隔字符串。

不要試圖手動編寫JSON,構建一個JavaScript對象,然後使用JSON序列化庫。

data: JSON.stringify({requestParameters:{username:'xxxx', password:'xxxx'}), 
+0

這樣做,但現在不給我什麼(也不成功或失敗)。 – nogomon

0

我認爲jQuery.support.cors = true;只用於檢查瀏覽器是否支持cors,沒有設置它。

也許嘗試使用JSONP而不是JSON。 JSONP是專門爲跨域數據請求而設計的。

+0

如果刪除該行,給出的錯誤是「No Transport」,我已經閱讀了關於該錯誤的內容,並且給出的答案是將該行更正爲錯誤。 – nogomon