2016-07-28 4 views
0

申し訳ありませんが、jQueryを使用してAPI呼び出しを行う必要があります。私は既にangularJSを使用して呼び出しを行っていますが、この場合は使用できません。 jQueryに変換しようとしましたが、同じ結果が得られません。私が間違っていることは何ですか?情報が欠落していますか?私はかなりjQueryを新しくしているので、何か重大または誤解された何かが欠けているかのように感じます。API呼び出しをAngularからjQueryに変換する

angularJSでの作業コード:

var req = { 
     method: 'POST', 
     url: 'https://fakeurl.com/rest/v1/portal/user/' + $scope.email.value, 
     headers:{ 
      'Content-Type': 'application/json', 
      'Header_1': 'Yes', 
      'x-access-token': 'glsFromWebsite' //$scope.authInfo.token 
     } 
    }; 

    restCall($http, req).then(function (res) { 

     // check for error even though 200 response 
     if (res.error) { 
      console.error("Error reported...");  
     } else { 
`   //enter success code here 
     } 
    }); 

var restCall = function(http, req) { 
    var _url = getBaseUrl() + req.url; 
    req.url = _url; 

    return new Promise(function(fulfill, reject) { 
    try { 

     http(req).then(function (res) { 

     // check for error even though 200 response 
     if (res.data.error) { 
      if (res.data.error === '601') { 
      console.error('Token is invalid or has expired'); 
      } else { 
      console.error("Error from end point: " + res.data.error); 
      } 
     } 
     fulfill(res.data); 

     }, function(err) { 
     console.error('Error calling rest endpoint',err); 
     reject(); 
     }); 

    } catch (ex) { 
     console.error('Exception calling rest endpoint',ex); 
     reject(ex); 
    } 
    }); 
}; 

私の失敗のjQueryコード:

var processCreate = function (email) { 

    $.ajax({ 
     url: 'https://fakeurl.com/rest/v1/portal/user/' + email.value, 
     type: 'POST', 
     headers: { 
      'Content-Type': 'application/json', 
      'Header_1': 'Yes', 
      'x-access-token': 'glsFromWebsite' //$scope.authInfo.token 
     }, 
     success: function (res, a, b) { 
      if (res === 'NOT FOUND') { 
       //code that runs when this case is true 
      } else { 
       //code that runs when this case is false 
      } 
     }, 
     error: function() { 
      console.error("Error..."); 
     } 
    }); 
} 
+0

のようなAJAX呼び出しを作ってみましょうあなたが使用しようとすると、エラーを取得していますjquery? 404、または500のように? – KreepN

+0

コンソールログエラーのようなものが "失敗"するとデバッグが始まります – FrickeFresh

+0

@KreepN jQueryを使用しようとするとコンソールにエラーが表示されません。コードを実行するために必要なすべてのjQueryライブラリがあることは確かです。 – Juan

答えて

1

この

var processCreate = function (email) {   
       var authHeaders = {}; 
       authHeaders.Authorization = 'Bearer ' + 'glsFromWebsite'; 

       $.ajax({ 
        url: 'https://fakeurl.com/rest/v1/portal/user/' + email.value, 
        type: "POST", 
        cache: false, 
        dataType : "json", 
        contentType: "application/json; charset=utf-8", 
        headers: authHeaders, 
        success: function (data) { 

         //console.log(data); 
         if (data === 'NOT FOUND') { 
          //code that runs when this case is true 
         } else { 
          //code that runs when this case is false 
         } 
        }, 
        error: function (xhr) { 
         console.log(xhr); 
        } 
       }); 
} 
+0

ありがとうございますが、まだ動作していないようです。私はChromeからデバッグしようとしますが、成功関数もエラー関数も実行しません。私はAjax内にブレークポイントを置いていますが、それらをスキップします。 – Juan

+1

正しいURLの後にURLが作成されていますか?私は彼らがURLでいくつかの問題かもしれないと思う。 email.valueに値がありますか? –

+1

元のコードでは、getBaseUrl()を呼び出して_req.urlに追加するので、ajax urlはいくぶん似ているはずです。しかし、ajaxではgetBaseUrl()を追加しません。それが問題かもしれないかどうか確認してください。ありがとう –

関連する問題