Ошибка, которую вы получаете, означает, что аргумент, переданный обратному вызову успеха $ .ajax, msg
, является нулевым. Поэтому, когда вы пытаетесь получить доступ к его свойству status
, вы получаете ошибку (потому что нулевое значение не может иметь никаких свойств). Если вы поместите console.log(msg)
в первую строку вашего обратного вызова, это должно быть подтверждено; вы просто увидите на консоли null
.
Все это говорит о том, что настоящая проблема связана с ответом ajax, а не с обработкой этого ответа Javascript. И это согласуется с тем, что вы сказали о том, как оно работает нормально при запуске с локального компьютера. Вы испытываете какую-то ошибку сервера *, и это именно то, что меняется, когда вы запускаете ее на своем локальном компьютере вместо вашего интернет-сервера.
* «ошибка сервера» в данном случае означает не то, что ваш сервер совершает ошибку, а скорее то, что проблема лежит на стороне сервера, а не на стороне клиента (браузер-JavaScript).
Итак, проверьте заголовки ответа от вызова ajax, а также код на стороне сервера, который выполняется при выполнении вызова. Если вы все еще не можете найти проблему, обновите свой вопрос с помощью заголовков ответов и кода на стороне сервера.