2016-07-11 6 views
0

私のimugurアクセス​​トークンを取得するために$ httpを使用してPOSTリクエストを行い、すべてがPCのブラウザで正常に動作します。

しかし私は自分のAndroid携帯を使用していますが、それを試していませんでした。私はエラーが発生し、console.logからNULLが表示されます。

私はこれをどのように修正するのか分かりませんが、誰も助けてくれますか? おかげ

$http({ 
    method: 'POST', 
    url: "https://api.imgur.com/oauth2/token", 
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, 
    transformRequest: function (obj) { 
     var str = []; 
     for (var p in obj) 
     str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); 
     return str.join("&"); 
    }, 
    data: { client_id: "my_cliendID", client_secret: "my_clientSecret", grant_type: "refresh_token", refresh_token: "my_refreshToken" } 
    }).success(function (e) { 
     callback(e); 
    }).error(function (e) { 
     console.log(e); 
    }); 

========================================= ================。

私が$ httpを使うと、NULL値が得られるので、私は$ resourceを使用しようとしますが、それと同じ問題です。 PCはうまく動作しますが、電話を使うときはまだfunction (error) {alert(JSON.stringify(error))});からエラーが出ます.Null値ではなく応答が返ってきます。私はjqueryのAJAXを試みた後、それは側(PC &モバイル)の両方で動作

var token = $resource("https://api.imgur.com/oauth2/token", null, {gettoken: {method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded'}} 

function getAccess(callback) { 
    data= { client_id: "my_cliendID", 
     client_secret: "my_clientSecret", 
     grant_type: "refresh_token", 
     refresh_token: "my_refreshToken" 
    } 

    var toke = token.gettoken($httpParamSerializer(data), 
    function (success) { 
     alert(JSON.stringify(success)) 
     responseSuccess(success, null, callback) 
    }, 
    function (error) { 
     alert(JSON.stringify(error)) 
     responseError(error, callback) 
    }); 
}; 
+0

あなたの携帯電話は、最新バージョンのコードの代わりに、いくつかの古いキャッシュを取得しているかどうかを確認しましたか? – Icycool

+0

おそらくネットワーキングの問題です。あなたの電話はデスクトップとは別のファイアウォールの後ろに接続していますか? –

+0

Chromeのリモートデバッグを使用して、正確に何が起こっているのかを確認することをお勧めします。 – shaunhusain

答えて

0

を(image参照)

角度$ HTTP & $リソースがモバイルブラウザ上で動作していない理由を知ってはいけません。

data= { client_id: "client_id", 
    client_secret: "client_secret", 
    grant_type: "refresh_token", 
    refresh_token: "refresh_token" 
} 
$.ajax({ 
    type: "POST", 
    url: 'https://api.imgur.com/oauth2/token', 
    data: $httpParamSerializerJQLike(data), 
    headers: { 
    'Content-Type': 'application/x-www-form-urlencoded' 
    }, 
    success: function(res) { 
     callback(res); 
    }, 
    error:function(res){ 
    } 
}); 
+0

$リソースは仕事の実際のAJAX部分を処理するために$ httpを使うので、$ httpが機能しないと$リソースは機能しません。 $ httpは基本的に$ .ajaxと同じですが、何が間違っているのかは分かりません。おそらく、あなたはホワイトリストプラグインを使用する必要があるかもしれませんが、私は$ .ajaxにも当てはまると思います.ajax – shaunhusain

+0

何らかのエラーがなければ、どのラインが消滅しているかを見るために、リモートデバッグを行うとき。 https://github.com/angular/angular.js/blob/master/src/ng/http.js#L940最終的にこの機能を使用してリクエストを送信します。https://github.com/angular/angular.js/blob /master/src/ng/http.js#L1222 XHRのすべての作業はhttps://github.com/angular/angular.js/blob/master/src/ng/httpBackend.jsにあります。$ httpを使用しないと、あなたは更新するビューの変数を更新した後、$ applyをトリガーする必要があります。 – shaunhusain

関連する問題