TypeError: Cannot read property 'jquery' undefined
J'obtiens l'erreur suivante dans une console Chromée,
TypeError: Cannot read property 'jquery' of undefined
Voici ma fonction javascript,
<script type="text/javascript">
var formApp = angular.module('formApp',[]);
function formController($scope,$http){
$scope.formData = {};
$scope.processForm = function(){
$http({
method : 'POST',
url : 'http://localhost:8080/ABCAPI/v1/image/front',
data : $.param($scope.formData.imageFile),
headers : {'Content-Type': "multipart/form-data" , 'Auth-Token' : "X"}
}).success(function(data){
console.log("");
if (!data.success) {
//if not successful, bind errors to error variables
} else {
//if successful, bind success message to message
$scope.message = data.message;
}
})
};
}
</script>
Ce n'erreur ci-dessus signifie et où ai-je fait de mal?
Êtes-vous sûr que l'erreur provient de l'présentés code?
oui, je suis sûr à 100%
La seule jQuery vous avez dans l'échantillon est
Mon mauvais, juste de remarquer que
en effet, confus au sujet du message que je reçois. aucune idée de la raison?
oui, je suis sûr à 100%
La seule jQuery vous avez dans l'échantillon est
$.param
, et rien de lire directement les tout jquery
des biens, de sorte qu'il semble un peu improbable.Mon mauvais, juste de remarquer que
$.param(undefined)
jette votre rapport d'erreur. Voir la réponse ci-dessous.en effet, confus au sujet du message que je reçois. aucune idée de la raison?
OriginalL'auteur helloworld | 2014-04-18
Vous devez vous connecter pour publier un commentaire.
$scope.formData.imageFile
semble s'évaluer àundefined
.Faire un
console.log($scope.formData)
juste avant la$http()
appel. Le$scope.formData
objet le plus probable ne contient pas deimageFile
propriété, ouimageFile
estnull
/undefined
.Noter que
$.param
prend un simple objet ou un tableau comme premier argument, donnant ainsi un autre type de valeur (ou pas de valeur) relève d'un comportement indéfini.Aussi, si je suis en train de lire votre code correctement, vous essayez de télécharger un fichier d'image dans
$http
. Il ne fonctionne pas de cette façon, vous avez besoin XHR2 deFormData
API. Voir cette réponse pour une mise en œuvre simple.Angulaire ne prend pas en charge
ng-model
sur<input type="file">
, qui est la raison pour laquelle l'ancien erreur.oui, si
$.param(undefined)
est à peu près équivalent à$.param()
(sans arguments), et$.param
n'a pas documenté de zéro arguments signature. Donc, il relève d'un comportement indéfini, je suppose.Il pourrait aussi faire valoir que nous ne voulons pas de jQuery pour être surchargé avec le code uniquement conçu pour permettre à des erreurs de sens. Dans tous les cas, avoir un upvote pour votre diagnostic.
Oui, avec l'erreur de la pile des appels et des points d'arrêt, nous pouvons résoudre ces problèmes assez rapidement de nos jours.
et la source des cartes.
OriginalL'auteur Fabrício Matté