簡體   English   中英

解析雲代碼httprequest錯誤

[英]Parse Cloud Code httprequest error

我從事Objective-C編程已有多年了,但是我需要使用Parse Cloud Code,並且對Javascript還是陌生的。

這是我的代碼:

Parse.Cloud.define("test", function(request, response) {
return Parse.Cloud.httpRequest({
    url: 'https://api-ilv.trulioo.com/partner/v3/truDetect',
    params: {
        'Content-Type' : 'application/json',
        'api_key':'1234567890',
        'provider_name':'fb',
        'provider_url':'https://www.facebook.com/testing'
    }
}).then(function(httpResponse) {
    console.log(httpResponse.text);
    response.success(httpResponse.text);
}, 
function (httpResponse, error) {
    console.error('Request failed with response: ' + httpResponse.text);
    response.error('Request failed with response: ' + httpResponse.text)
});
});

我可能做錯了什么?

編輯

進行了一些更改以登錄上面的代碼。 這是回應:

{"code":141,"error":"Request failed with response: 405: Method Not Allowed"}

因此,現在看來該方法正確返回了錯誤。 但是,錯誤代碼405是什么意思?

那是POST。 需要將其更改為POST

Parse.Cloud.define("test", function(request, response) {

    var baseurl = "https://api-ilv.trulioo.com/partner/v3/truDetect";

    var params = {
      'api_key':'1234567890',
      'provider_name':'fb',
      'provider_url':'https://www.facebook.com/testing'
    }

    return Parse.Cloud.httpRequest({
      method: 'POST',
      url: baseurl,
      headers: {
        'Content-Type': 'application/json;charset=utf-8'
      },
      body: params
    }).then(function(httpResponse) {
        response.success(httpResponse.text);
    }, 
    function (error) {
        console.error('Console Log response: ' + error.text);
        response.error('Request failed with response ' + error.text)
    });
});

then的一部分Parse.Cloud.httpRequest預計兩個函數-第一個用於在成功的情況下,第二個為錯誤的情況下。

Parse.Cloud.define("test", function(request, response) {
    return Parse.Cloud.httpRequest({
        url: 'https://api-ilv.trulioo.com/v3/truDetect',
        params: {
            'api_key':'1234567890',
            'provider_name':'fb',
            'provider_url':'https://www.facebook.com/testing'
        }
    }).then(function(httpResponse) {
        response.success(httpResponse.text);
    }, 
    function (error) {
        response.error("Error: " + error.code + " " + error.message);
    });
});

我的猜測是您對api-ilv.trulioo.com的請求api-ilv.trulioo.com了問題,但是由於您的代碼從不調用response.error您會看到“未調用成功/錯誤”錯誤。

對於單個請求的HTTP網橋,您不需要.then函數:您可以通過成功/錯誤功能更簡單地使用它:

Parse.Cloud.define("test", function (request, response) { 
    var baseurl = "https://api-ilv.trulioo.com/v3/truDetect";  
    Parse.Cloud.httpRequest({ url: baseurl,{
            'api_key':'1234567890',
            'provider_name':'fb',
            'provider_url':'https://www.facebook.com/testing'
        },
        success: function (httpResponse) {
            response.success(httpResponse.text );
        },
        error: function (httpResponse) {
            console.error('Request failed with response code ' + httpResponse.status);
        }
    });  
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM