私はこれを調査するのに数時間を費やしました。うまくいけば、これが他の人の時間を節約するでしょう。
デバッグ セッションの後、最終的に違いはリクエスト ヘッダーにあることがわかりました。
1.0.3 (at this time): {X-Requested-With: "XMLHttpRequest", Accept: "application/json, text/plain, */*", X-XSRF-TOKEN: undefined}
1.1.1 (at this time): {Accept: "application/json, text/plain, */*", X-XSRF-TOKEN: undefined}
そこで、「X-Requested-With: XMLHttpRequest が削除されました」をググったところ、最終的にこのコミットを見つけました。
($http): ヘッダーのデフォルトから「X-Requested-With」を削除し
ます https://github.com/angular/angular.js/commit/3a75b1124d062f64093a90b26630938558909e8d
(この削除はいくつかの議論の結果であり、基本的にはよりスムーズな CORS リクエストを許可することを目的としています)
この削除により、Rails はサービスを通過する方法を見つけることができなくなりました。つまり、次のようになります。
format.js { render 'shared/common_js' }
もうトリガーされません(実際には format.html です)!
可能な修正は次のとおりです。
$http( {method: 'GET', url: url , headers: {'X-Requested-With': 'XMLHttpRequest', 'Accept': 'application/json, text/plain, */*'}})
.success(successFn)
.error(
function(data, status, headers, config) {
console.log('Fail');
}
);
それ以外の場合は、コミットに記載されているように、不足しているヘッダーを次のように戻すことができます。
myAppModule.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest';
}]);
これがお役に立てば幸いです。