Weigerte sich zu starten Sie das Skript von '*', weil sein MIME-type ("application/json') ist keine ausführbare Datei, und die strikte MIME-Typ-überprüfung aktiviert ist

Ich bin ein Neuling auf AngularJS. Ich bin mit einer rails-Anwendung verfügbar machen, Daten im json-format. Die Daten von angular-app. Die Winkel-repo-und repo-Schienen sind völlig unterschiedlich. Der Grund für die verschiedenen repositories ist, weil ich möchte, dass meine Schienen repo einfach zu Belichten Daten mithilfe von APIs, die ich benutzen kann in das eckige app.

Meine rails-controller ist als unten

class Api::V1::PhonesController < ApplicationController
  def index
    render json: Phone.all
  end

  def show
    render json: Phone.find(params[:id])
  end
  ...
end

Nun, wenn ich Besuch 'localhost:3000/api/v1/Handys", es gibt mir die json-Daten für alle Handys. Wenn ich Besuch 'localhost:3000/api/v1/Telefone/1', es gibt die json-Daten für das Telefon mit der id 1. Ich überprüfte die json-Daten-format verwenden http://jsonlint.com/. Funktioniert auch alles Prima bis hier.

Meine angularjs Routen-Datei ist so:

$routeProvider.
   when('/phones', {
     templateUrl: 'list.html',
     controller: 'PhoneListController' 
   }).
   when('/phones/:id', {
     templateUrl: 'show.html',
     controller: 'PhoneShowController'
   }).
   otherwise({
     redirectTo: '/phones'
   });
}]);

Meine index.html in den eckigen repo hat die list.html Vorlage eingebettet.

<html ng-app='phoneCatApp'>
  ...
</html>
<script type="text/ng-template" id="list.html">
  This is the list template.
</script>

den code für die services.js ist wie:

var appServices = angular.module('appServices', []);

phoneCatApp.factory('appServices', ['$http', '$q', function($http, $q){
  var url = "http://localhost:3000/api/v1/";

  //get all phones
  this.getPhones = function(){
    var defered = $q.defer();
    var listApi = url + "phones";

    $http.jsonp(listApi).then(function(results){
      defered.resolve(results);
    }, function(error){
      defered.reject(error);
    });
    return defered.promise;
    }
  return this;
}]);

Den text in die Skript-Vorlage angezeigt wird, wenn ich Besuch '#/Handys'. Das problem ist, dass
1) In chrome folgende Fehlermeldung angezeigt, wenn ich überprüfen Sie die Seite.

Refused to execute script from 'http://localhost:3000/api/v1/phones' because its MIME type ('application/json') is not executable, and strict MIME type checking is enabled.

2) nehmen Sie in firefox die folgende Fehlermeldung wird immer angezeigt.

SyntaxError: missing ; before statement

Danke für die Hilfe.

Schreibe einen Kommentar